No se crea un archivo nuevo mientras se redirige la salida


2

Estoy usando esto para la redirección de salida:

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

Pero no quiero que se cree un archivo de cero bytes si no se encuentra ningún resultado del comando grep.

¿Hay alguna manera de que esto sea posible?


Respuestas:


1

Esto solo se creará test.txtsi el recuento de líneas no es cero:

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

0

Debajo hay un AWKsabor.

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

Esto creará "test.txt" solo si se encuentra al menos una coincidencia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.