Как направить вывод команды на две отдельные команды и сохранить выходные данные

С реализацией GNU findвы можете сделать:

find. -iname '*.zip' -printf '%p %TFT%TT%Tz+\n'

, который дает вывод, подобный:

./file.zip 2018-03-04T13:23:21.0321012380+0000
1
27.10.2020, 21:44
1 ответ

Ты очень близко

command | tee >(sort -n >/tmp/x.txt) | sort -u >/tmp/y.txt

Если вам интересно, действие >(... )заменяется путем к каналу дескриптора (, например /dev/fd/1234), так что результирующий конвейер имеет такую ​​форму, где /dev/fd/1234присоединен к другому sortкоманда

command | tee /dev/fd/1234 | sort > /path/to/elsewhere

Для захвата sorted вывода в переменную (из комментария , а не из вопроса)

var=$(command | tee >(sort -n > x.txt) >(sort -u > y.txt) | sort -u)
2
18.03.2021, 22:54

Теги

Похожие вопросы