2

Я использую это для перенаправления вывода:

cat filename | grep 'dis' | wc -l > test.txt

Но я не хочу, чтобы файл с нулевым байтом создавался, если не найдено результата из команды grep.

Есть ли способ, которым это возможно?

2 ответа2

1

Это создаст только test.txt если количество строк не равно нулю:

grep 'dis' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> test.txt; }
0

Ниже приведен аромат AWK .

awk 'BEGIN {lc=0}; /dis/ {lc+=1}; END {if (lc > 0) print lc > "test.txt"}' filename

Это создаст «test.txt», только если найдено хотя бы одно совпадение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .