wc를 사용하여 표준 출력을 파일로 파이프

wc를 사용하여 표준 출력을 파일로 파이프

저는 수업에 대한 실습 과제를 수행하고 있는데 그 예 users | wc -w는 현재 로그인한 사용자 수를 표시하는 것입니다. 강사는 개수를 계속 표시하면서 출력을 users파일( )에 쓰도록 요청했습니다. users > file내 초기 생각은 원래 예제를 간단한 읽기로 변경하는 것이었지만 users > file | wc -w오류가 발생했습니다.

ambiguous output redirect

우리 대학의 Unix 연구실에서는 기본적으로 작업을 수행할 수 tcsh있으며 명령이 셸마다 다를 수 있다는 것을 알고 있습니다. 완전히 잊어버린 작업을 수행할 수 있는 명령이 있습니까?

답변1

사용 tee:

users | tee file | wc -w

사용자 수를 출력으로 제공하고 사용자를 콘텐츠로 파일에 씁니다.


귀하의 질문에 해당하는 경우:

command >file | command2

이것은 작동하지 않습니다. >file출력을 commandfile 로 리디렉션하고 file, 출력은 익명 파이프에 기록되고 명령은 command2다른 쪽 끝에서 이를 읽습니다. 이는 모호한 리디렉션입니다.

이 명령은 표준 입력에서 받은 모든 내용이 기록되는 인수를 tee허용합니다 . 또한 표준 입력부터 표준 출력까지 모든 것을 기록하며, 여기에서 더 많은 명령이나 파일로 리디렉션할 수 있습니다.fileteetee

답변2

이를 수행하는 명령이 있습니다 tee.

users | tee file | wc -w

추신. (외부) 명령은 셸 간에 다르지 않습니다. 입력 및 출력 리디렉션 구문은 다릅니다.

관련 정보