¿Cómo clasifico usando los comandos grep y sort?


14

Me gustaría crear una lista ordenada de todos los servicios TCP encontrados en el archivo /etc/services, canalizar la salida del comando grep tcp /etc/servicesen el comando sorty luego redirigir la salida de esta tubería al archivo ~/pipelab.txt.

Sigo recibiendo un mensaje de error que dice que mi salida es incorrecta y no sé por qué.

Esto es lo que probé por última vez:

grep tcp /etc/services > ~/pipelab.txt | sort

Respuestas:


11

> ~/pipelab.txtobviamente pertenece al comando en el mismo lado del operador de canalización |. Es decir, redirige la grepsalida al archivo en lugar de canalizarlo a sort:

grep tcp /etc/services | sort > ~/pipelab.txt

21

Intenta redirigir la salida de grepun archivo y canalizarlo a sort. No puedes hacer eso, al menos no así.

En cambio, realmente solo quieres alimentarlo para ordenar:

grep tcp /etc/services | sort

y luego desea redirigir la salida ordenada (es decir, lo que está saliendo de la clasificación) a un archivo, por lo que coloca la redirección después de la clasificación:

grep tcp /etc/services | sort > ~/pipelab.txt

Tanto las canalizaciones como las redirecciones funcionan cambiando dónde va la salida del comando. Tuviste dos de ellos peleando por la salida de grep(y finalmente, la redirección ganó y escribió la salida sin clasificar en tu archivo).


Muchas gracias, pensé que mientras pusiera el comando de clasificación en cualquier lugar, aún funcionaría.
— user72510

1
@ user72510 Las tuberías se procesan en orden, de izquierda a derecha. Eso es realmente útil, por ejemplo, si desea las primeras cinco líneas de la salida ordenada, puede hacerlo grep tcp /etc/services | sort | head -n 5. Es importante que sortse haga antes del head, o no obtendrá las líneas que desea.
— derobert

Gracias por explicar eso. Estoy tomando la clase en línea, así que me estoy enseñando. Agregando que tengo 40 años, es un aprendizaje lento.
— user72510
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.