Bash에서 두 개의 명령을 사용하여 동일한 표준 입력 읽기

Bash에서 두 개의 명령을 사용하여 동일한 표준 입력 읽기

bash에서 두 개의 별도 명령 <2,3>으로 출력을 파이프하고 싶습니다. 이를 수행하는 가장 좋은 방법은 무엇입니까? 현재 다음 스크립트가 있습니다.

command source > output
command2 output &
command3 output &

출력 파일은 ~100G이며 차선책은 명령 2와 3을 별도로 파이프하는 것입니다. 더욱 효율적으로 할 수 있을 것 같아요.

답변1

배쉬에서:command source | tee >(command2) >(command3)

에서이것스택오버플로 질문입니다. 나는 엄청난 출력으로 이것을 시도하지 않았습니다.

답변2

다른 답변은 개념을 소개합니다. 실제 데모는 다음과 같습니다.

$ echo "Leeroy Jenkins" | tee >(md5sum > out1) >(sha1sum > out2) > out3

$ cat out1
11e001d91e4badcff8fe22aea05a7458  -

$ echo "Leeroy Jenkins" | md5sum
11e001d91e4badcff8fe22aea05a7458  -

$ cat out2
5ed25619ce04b421fab94f57438d6502c66851c1  -

$ echo "Leeroy Jenkins" | sha1sum
5ed25619ce04b421fab94f57438d6502c66851c1  -

$ cat out3
Leeroy Jenkins

물론 > /dev/nullout3 대신에 할 수 있습니다.

관련 정보