Grepを使用してRailsディレクトリを検索しようとしています。特定のWordを探しています。ファイル名と行番号を出力するにはgrepを使用します。
私のためにこれを行うgrepフラグはありますか?私は-n
と-l
の組み合わせを使用しようとしましたが、これらはファイル名を数字なしで出力するか、簡単に読めない端末に大量のテキストをダンプします。
例:
grep -ln "search" *
Awkにパイプする必要がありますか?
-l
は、-n
の出力を抑制するため、制限が強すぎると思います。 -H
(--with-filename
)をお勧めします:各一致のファイル名を出力します。
grep -Hn "search" *
出力が多すぎる場合は、-o
を試して、一致する部分のみを印刷してください。
grep -nHo "search" *
grep -rin searchstring * | cut -d: -f1-2
これは、再帰的に(この例ではsearchstring
という文字列を)検索し、大文字と小文字を無視して、行番号を表示します。そのgrepからの出力は次のようになります。
/path/to/result/file.name:100: Line in file where 'searchstring' is found.
次に、コロン:
をフィールド区切り文字として使用し、フィールド1〜2を表示して、その結果をcutコマンドにパイプします。
行番号が不要な場合は、-f1
(ファイル名とパスのみ)を使用し、出力をuniq
にパイプして、各ファイル名が1回だけ表示されるようにします。
grep -ir searchstring * | cut -d: -f1 | uniq
私は使用するのが好きです:
grep -niro 'searchstring' <path>
しかし、それは、私がいつも他の方法を忘れて、忘れられないからですRobert de grep -
niro何らかの理由で:)