我使用它进行输出重定向:
cat filename | grep 'dis' | wc -l > test.txt
但是如果 grep 命令未找到任何结果,我不希望创建零字节文件。
有什么办法可以实现这一点吗?
答案1
test.txt
仅当行数非零时才会创建:
grep 'dis' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> test.txt; }
答案2
下面是一种AWK
味道。
awk 'BEGIN {lc=0}; /dis/ {lc+=1}; END {if (lc > 0) print lc > "test.txt"}' filename
仅当找到至少一个匹配项时,才会创建“test.txt”。