grep 및 sort 명령을 사용하여 정렬하는 방법은 무엇입니까?

grep 및 sort 명령을 사용하여 정렬하는 방법은 무엇입니까?

파일에서 발견된 모든 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

관련 정보