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

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

Me gustaría crear una lista ordenada de todos los servicios TCP que se encuentran en el archivo /etc/services, canalizar la salida del comando grep tcp /etc/servicesal comando sorty luego redirigir la salida de esta canalización al archivo ~/pipelab.txt.

Sigo recibiendo un mensaje de error que indica que mi resultado es incorrecto y no sé por qué.

Esto es lo último que probé:

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

Respuesta1

Estás intentando redirigir la salida grepa un archivo.ycanalícelo a sort. No puedes hacer eso, al menos no así.

En cambio, lo que realmente desea es alimentarlo para ordenar:

grep tcp /etc/services | sort

y luego quieres redirigir elordenadosalida (es decir, lo que sale 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 el lugar donde va la salida del comando. Tenías a dos de ellos peleando por el resultado grep(y finalmente, ganó la redirección y escribiste el resultado sin clasificar en tu archivo).

Respuesta2

> ~/pipelab.txtObviamente pertenece al comando del mismo lado del operador de la tubería |. Es decir, redirige la grepsalida al archivo en lugar de canalizarla a sort:

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

información relacionada