grep grep コマンド出力文字列

grep grep コマンド出力文字列

grep「MyOwnError」エラーに基づいてログからIDを取得し、同じIDを使用してログ全体にIDが表示される行全体を取得したいと思います。

たとえば、

ファイルがあるとしますFile1

animal:Dogs hate the animal:catsF and no-one else
animal:catsF hate the animal:fish
animal:catsF also hate animal:humans

私のクエリは「犬」です。

grep 'Dogs' File1 | grep -o 'animal:.*F'

animal:catsFこれで、grep「catsF」に必要なファイルと同じファイルが提供されますFile1

試してみましたxargsが、パラメータの代わりにファイル名が選択されました。

grep 'Dogs' File1 | grep -o 'animal:.*F' | xargs grep File1

このコマンドを修正するか、正しいコマンドを入力してください。

答え1

Fこのコマンドは、で始まる最初の行を返しますanimal:。 1つの単語のみを取得するには、animal:次の間にスペースを指定しないでくださいF

grep 'Dogs' File1 | grep -o 'animal:[^ ]*F'

キーワードを含むすべての行を一覧表示するには、標準入力(パイプなど)モードで読み取りをgrep使用して出力を再パイプします。-f-

| grep -Ff- File1

私はまた、-F行に正規表現が含まれていないと思ったので、「固定文字列の使用」のようなものを使用しました。

関連情報