我在文件中找到一个单词/模式,如果文件中不存在这样的模式,那么我想打印/ echo“ - ”。我们可以在命令行中使用单个内联命令执行此操作吗?
grep word <file> | <command to return "-" if "word" not present in file>
同样,如果脚本没有返回任何内容,则回显“ - ”
python script.py | <command to return "-" if script returns nothing/NULL
答案 0 :(得分:1)
如果要检查命令没有输出而不管其返回码如何,那么你应该检查没有输出,其中一种方法是:
awk '{print} END {if (NR == 0) print "-"}'
例如:
$ grep - /dev/null | awk '{print} END {if (NR == 0) print "-"}'
-
$ echo some output | awk '{print} END {if (NR == 0) print "-"}'
some output
答案 1 :(得分:0)
这可以通过以下命令来完成:
grep word file.txt || echo "-"
如果文件中存在单词,则会从文件中打印该行,否则将打印-
。
如果命令是脚本,那么:
ret=`python script.py`; if [[ "$ret" ]];then echo "$ret"; else echo "-"; fi