Я использую это для перенаправления вывода:
cat filename | grep 'dis' | wc -l > test.txt
Но я не хочу, чтобы файл с нулевым байтом создавался, если не найдено результата из команды grep.
Есть ли способ, которым это возможно?
Я использую это для перенаправления вывода:
cat filename | grep 'dis' | wc -l > test.txt
Но я не хочу, чтобы файл с нулевым байтом создавался, если не найдено результата из команды grep.
Есть ли способ, которым это возможно?
Это создаст только test.txt
если количество строк не равно нулю:
grep 'dis' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> test.txt; }
Ниже приведен аромат AWK
.
awk 'BEGIN {lc=0}; /dis/ {lc+=1}; END {if (lc > 0) print lc > "test.txt"}' filename
Это создаст «test.txt», только если найдено хотя бы одно совпадение.