파이프라인 정렬 및 grep의 다양한 동작

파이프라인 정렬 및 grep의 다양한 동작

나에게 이상한 점은 파이프가 |다음 명령에 대해 다르게 동작한다는 것입니다.

curl http://norvig.com/big.txt |  sort


curl http://norvig.com/big.txt |  grep employ

첫 번째 명령에서 파이프라인은 curl실행이 종료될 때까지 기다립니다. 두 번째 명령에서는 실행 중인 grep동안 중간 출력을 파이프합니다 .curl

파이프라인의 작동 방식을 결정하는 것은 무엇입니까?

고쳐 쓰다:

sort문제는 무엇을 했는지 , grep무엇을 할 수 있는지가 아닙니다 . 문제는 파이프라인이 어떻게 알 수 있느냐는 것입니다.

답변1

제가 생각하는 이유는 다음과 같습니다.

sort입력 읽기가 완료될 때까지 정렬을 시작할 수 없습니다(또는 최소한 결과 인쇄).

grep입력을 받기 시작하면 작업을 시작하고 결과 인쇄를 시작할 수 있습니다.

관련 정보