![grep 및 sort 명령을 사용하여 정렬하는 방법은 무엇입니까?](https://linux55.com/image/38410/grep%20%EB%B0%8F%20sort%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A0%95%EB%A0%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
파일에서 발견된 모든 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