Grep出力の問題

Grep出力の問題

さて、外付けハードドライブでgrepを使用しています。

はい、

M:/

grep -rhI "bananas" . > out.txt

これにより、「M:/」に「banana」を含むすべての行が出力されます。

ただし、ファイルの内容全体を出力したいので、example.txtの行に「bananas」が含まれている場合は、example.txtの内容全体が出力され、ディレクトリ「M:/」。 「バナナ」。

ベストアンサー1

grep -r "bananas" | cut -d: -f1 | xargs cat >> result.txt

grep

  • -r:再帰。各ディレクトリのすべてのファイルを繰り返し読み込みます。

結果:file_name:text各行について。たとえばfoo.txt:bananas

各行からファイル名を取得する必要があります。

切るsed部分線を削除するための簡単なエディタ(またはここを使用できますが、awk切り取りは簡単)

  • -d分離記号。投稿ファイルがあるので、:区切り文字は次のとおりです。-d:
  • -f出力をフィールドに分割します。どちらを服用する必要がありますか?-f1- 最初!

パラメータ

これでファイルのリストが作成されました。彼らと関係がありますか?xargs標準入力でコマンドラインを作成して実行するためにこれを使用します。標準入力からファイル名を受け入れ、catファイル名を引数として提供する各行に対して実行されます。単にcatその内容を標準出力として印刷します。

>>「ファイルに追加」を意味します。

おすすめ記事