grep 및 sort 명령을 사용하여 어떻게 정렬합니까?

grep 및 sort 명령을 사용하여 어떻게 정렬합니까?

/etc/services파일에서 발견된 모든 TCP 서비스의 정렬된 목록을 만들고 명령의 출력을 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

관련 정보