Isso só criará test.txt
se a contagem de linhas for diferente de zero:
grep 'dis' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> test.txt; }
Estou usando isso para redirecionamento de saída:
cat filename | grep 'dis' | wc -l > test.txt
Mas eu não quero um arquivo de byte zero criado se nenhum resultado for encontrado no comando grep.
Existe alguma maneira de isso ser possível?
Isso só criará test.txt
se a contagem de linhas for diferente de zero:
grep 'dis' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> test.txt; }
Abaixo está um sabor AWK
.
awk 'BEGIN {lc=0}; /dis/ {lc+=1}; END {if (lc > 0) print lc > "test.txt"}' filename
Isso criará "test.txt" somente se houver pelo menos uma correspondência encontrada.
Tags bash shell unix shell-script