이와 같은 프로그램에는 mv
인수로 실제 파일 이름이 필요하다는 것을 알고 있지만 이와 같은 프로그램 sort
은오직표준 입력에서 읽기그리고names | sort > names
파일 이름을 사용하는 대신 표준 출력에 쓰고 다음과 같은 -o
옵션을 제공하십시오 sort names -o names
.
그러면 그 이유는 무엇입니까?
답변1
즉, 추가 프로그래밍이 거의 필요하지 않고 더 큰 유연성과 사용 편의성을 갖춘 프로그램을 제공합니다. 그래서 왜 안돼?
적절한 방식으로 작동하는 대부분의 핵심 유틸리티에는 이 기능이 있습니다. 저는 Perl 프로그래머는 아니지만 Diamond 연산자도 <>
같은 방식으로 동작한다고 생각합니다. 즉, 파일이 명령줄에 있으면 파일에서 읽고, 그렇지 않으면 stdin에서 읽습니다. Larry가 이 기능의 핵심 유틸리티는 Perl 스크립트를 사용하여 상당히 쉽게 에뮬레이션할 수 있다고 말한 것을 기억하는 것 같습니다.
게다가 이 프로그램은 여러 파일을 동시에 처리하고 서로 구별할 수 있습니다. 고양이를 사용하면 이 작업을 수행할 수 없습니다. 이름이 없으면 인라인( sed -i
) 또는 파일 기반( ) wc
을 구별하는 유틸리티를 가질 수 없습니다. 또한 더 깔끔해 보입니다(IMO): sort file -o sorted
또는 (btw, 동일한 파일을 읽고 쓰는 경우 인라인 cat file | sort > sorted
으로 sort <file >sorted
올바르게 작동하지 않습니다).