tee를 사용하여 다른 유틸리티가 표시하지 않는 출력을 표시할 수 있습니까?

tee를 사용하여 다른 유틸리티가 표시하지 않는 출력을 표시할 수 있습니까?

macos pbcopy유틸리티는 입력 스트림을 가져와 아무것도 표시하지 않고 시스템 클립보드에 저장합니다. 그래서 터미널에서 명령의 출력을 복사/붙여넣고 싶을 때 일반적으로 명령을 먼저 실행하여 정상적으로 인쇄하여 얻은 내용을 확인한 다음 다시 실행하여 pbcopy로 파이프합니다.

Linux, IIRC에도 유사한 유틸리티가 있습니다. teepbcopy를 사용하여 파일 대신 데이터를 보내 복사본과 동시에 표시할 수 있습니까 ?

예:

어떤 이유에서든 디렉터리의 파일에 대한 정보를 기록하고 싶지만 a이름에 또는 문자가 포함된 파일만 나열하고 싶습니다.b

첫 번째는 ls내가 원하지 않는 항목을 필터링했는지 확인하기 위한 것입니다. 두 번째는 결과를 클립보드에 넣는 데 사용됩니다. 한 단계로 모든 작업을 수행할 수 있는 방법이 있나요 tee?

% touch a b c
% ls | egrep 'a|b'
a
b
% ls | egrep 'a|b' | pbcopy
% 
두 번째 실행 후 클립보드 콘텐츠를 한 단계로 바로 가져오고 싶습니다.
a
b

답변1

이것은 가능해야 합니다. tee터미널에 직접 인쇄를 사용 /dev/tty하거나 프로세스 대체(Bash/ksh/zsh에서)를 사용하여 다음으로 인쇄합니다 pbcopy.

whatever | tee /dev/tty | pbcopy

또는

whatever | tee >(pbcopy)

(프로세스 교체는 일반 파이프처럼 파이프를 빌드 pbcopy하지만 파일 이름으로 사용할 수 있도록 합니다.)

관련 정보