grep が一致しない場合に文字列を印刷します。

grep が一致しない場合に文字列を印刷します。

次の2つのファイルがあるとしましょう。

$ cat search_file.txt
This line contains kwd1.
This line contains kwd2.
This line contains no match.
This line contains no match.
This line contains kwd5.
$ cat search_kwd.sh
grep kwd1 search_file.txt
grep kwd2 search_file.txt
grep kwd3 search_file.txt
grep kwd4 search_file.txt
grep kwd5 search_file.txt

search_kwd.sh を実行すると、次の結果が表示されます。

$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
This line contains kwd5.

stringgrepが一致するものを見つけることができないときはいつでも印刷したいと思います。出力は次のとおりです。

$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
string
string
This line contains kwd5.

Bashでどうすればいいですか?

ベストアンサー1

grep何も見つからない場合は、ゼロ以外のコードで終了します。

からman grep

通常、終了状態は、行が選択されている場合は0、行が選択されていない場合は1、エラーが発生した場合は2です。

したがって、次のものを使用できます。

grep kwd3 search_file.txt || echo "string"

おすすめ記事