假设我有两个文件,如下所示:
$ 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.
Run Code Online (Sandbox Code Playgroud)
$ 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
Run Code Online (Sandbox Code Playgroud)
当我运行 search_kwd.sh 时,我得到:
$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
This line contains kwd5.
Run Code Online (Sandbox Code Playgroud)
我想string在 grep 没有匹配时打印一个。输出将如下所示:
$ sh search_kwd.sh
This line contains kwd1.
This line contains kwd2.
string
string
This line contains kwd5.
Run Code Online (Sandbox Code Playgroud)
我如何去在bash这样做呢?
pLu*_*umo 15
grep 退出非零代码时没有发现。
来自man grep:
通常,如果选择了一行,退出状态为 0,如果没有选择任何行,则退出状态为 1,如果发生错误,则退出状态为 2。
所以你可以使用:
grep kwd3 search_file.txt || echo "string"
Run Code Online (Sandbox Code Playgroud)