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/null
out3 대신에 할 수 있습니다.