Я хотел бы создать отсортированный список всех служб TCP, найденных в файле /etc/services
, передать вывод команды grep tcp /etc/services
в команду sort
, а затем перенаправить вывод этого канала в файл ~/pipelab.txt
.
Я постоянно получаю сообщение об ошибке, указывающее на то, что мои выходные данные неверны, и я не знаю, почему.
Вот что я пробовал в последний раз:
grep tcp /etc/services > ~/pipelab.txt | sort
решение1
Вы пытаетесь перенаправить вывод grep
в файлиПеренаправить его в sort
. Этого делать нельзя, по крайней мере, не так.
Вместо этого вам просто нужно скормить ему данные для сортировки:
grep tcp /etc/services | sort
и затем вы хотите перенаправитьсортированныйвыводится (т.е. то, что получается в результате сортировки) в файл, поэтому вы ставите перенаправление после сортировки:
grep tcp /etc/services | sort > ~/pipelab.txt
Оба канала и перенаправления работают, изменяя, куда направляется вывод команды. У вас было два из них, которые боролись за вывод grep
(и в конечном итоге перенаправление победило и записало несортированный вывод в ваш файл).
решение2
> ~/pipelab.txt
очевидно, принадлежит команде на той же стороне оператора конвейера |
. То есть вы перенаправляете grep
вывод в файл вместо того, чтобы передавать его в sort
:
grep tcp /etc/services | sort > ~/pipelab.txt