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