Não criando novo arquivo durante o redirecionamento de saída

1

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?

    
por user417721 11.02.2015 / 05:06

2 respostas

1

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; }
    
por 11.02.2015 / 05:37
0

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.

    
por 11.02.2015 / 05:42