2 votos

La barra invertida del terminal se repite en la salida

Estoy usando zsh en un MacBook Pro, OS X 10.10. Cuando escribo ciertos comandos, como este:

cat myfile | awk -F $'\t' '{print $8, $9}' | sort | uniq -c | sort -k1,1n | awk '{if ($1 > 50) sum += $1} END {print sum}'

, entonces parte del comando se repite antes de la salida real del comando. La salida en este caso se ve como:

    " '{print $8, $9}' | sort | uniq -c | sort -k1,1n | awk '{if ($1 > 50) sum += $1} END {print sum}' : myusername2525

¿Alguien sabe cómo salir de la salida desordenada? Me parece que es una vulnerabilidad de la cadena de formato o algo similar.

2voto

shsteimer Puntos 8749

El problema es el $ en la primera awk en la cadena:

awk -F $'\t' '{print $8, $9}'

El -F opción para awk establece el separador de registros para su entrada. Si realmente esperas que el separador sea un signo de dólar seguido de un carácter de tabulación, debes mover el signo de dólar a las comillas simples de esta manera:

awk -F '$\t' '{print $8, $9}'

Dejando el $ fuera de las comillas simples significa que está siendo interpretado por el shell como una referencia a una variable. Esto es lo que está llevando a su extraña salida. Si no está esperando un signo de dólar en el separador de campos, sólo un tabulador, cambie el awk llamar a:

awk -F '\t' '{print $8, $9}'

Según lo que has dicho, lo anterior parece ser lo que quieres.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X