次の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.
string
grepが一致するものを見つけることができないときはいつでも印刷したいと思います。出力は次のとおりです。
$ 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"