5

Я хотел бы передать вывод двух отдельных команд <2,3> в bash. Каков наилучший способ сделать это? На данный момент у меня есть следующий скрипт:

command source > output
command2 output &
command3 output &

Выходной файл ~ 100G, и неоптимальным способом было бы передавать по отдельности команды 2 и 3. Я думаю, что это можно сделать еще эффективнее.

2 ответа2

9

В bash: command source | tee >(command2) >(command3)

Из этого вопроса stackoverflow. Я не пробовал это с огромными выходами.

0

Другие ответы вводят понятие. Вот фактическая демонстрация:

$ 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .