최근 에 데비안 (및 우분투)에서 ‘moreutils’패키지를 발견했습니다 . 편리한 유닉스 도구 모음입니다.
명령 중 하나는 ‘pee’입니다. 매뉴얼 페이지는 말합니다 :
오줌은 티와 같지만 파이프 용입니다.
그러나 짧은 매뉴얼 페이지이므로 버그를 제기했습니다 . 누구나 그것이 무엇을하는지, 어떻게 사용하는지, 왜 그것을 사용하는지 알고 있습니까?
답변
오줌으로 할 수있는 일은 다음과 같습니다.
seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
따라서 pee는 파일 대신 쉘 파이프와 함께 작동합니다.
bash는 오줌이 필요하지 않으며 쉘 명령을 파일로 열 수 있습니다.
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
답변
tee
먼저 사용한 경우 이해하기가 더 쉽습니다 . 이 유용한 이전 도구는 표준 입력을 사용하여 여러 파일과 표준 출력에 기록합니다. 다음과 같은:
echo "Hello world" | tee one two
string을 포함하는 one
및 이라는 두 개의 파일을 만듭니다 . 또한 터미널로 인쇄됩니다.two
Hello world
이제 pee
비슷한 기능을 수행하지만 출력을 여러 파일로 리디렉션하는 대신 여러 보조 명령 인 파이프로 리디렉션합니다. tee
원래 stdin을 stdout으로 보내지 않는다는 점에서 보조 명령의 출력과 결합하는 것이 의미가 없기 때문에 약간 다릅니다 . 다음은 매우 간단한 예입니다.
echo "Hello world" | pee cat cat
문자열 Hello world
을 터미널에 두 번 출력합니다 . 두 인스턴스 각각이 cat
표준 출력 을 수신하고 수행하는 cat
작업을 수행하기 때문입니다.