¿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.