파일 이름을 사용하는 대신 표준 스트림을 사용하면 어떨까요?

파일 이름을 사용하는 대신 표준 스트림을 사용하면 어떨까요?

이와 같은 프로그램에는 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올바르게 작동하지 않습니다).

관련 정보