Похоже, tee
команда будет делать то, что вы хотите.
Ключ должен использовать
>( )
для процесса замены . С tee
помощью следующего шаблона:
tee >(proc1) >(proc2) >(proc3) | proc4
Поэтому, если вы хотите использовать выходные данные в ls
качестве входных данных для двух разных grep
программ, сохраните выходные данные каждого из них grep
в разные файлы и передайте все результаты по less
очереди, попробуйте:
ls -A | tee >(grep ^[.] > hidden-files) >(grep -v ^[.] > normal-files) | less
Результаты ls -A
будут «переданы» в оба grep
раздела. Файл hidden-files
будет содержать содержимое первого вывода grep
, а normal-files
результаты второго grep
. Все файлы будут показаны в пейджере EDIT : что вы видите less
.less
это точно такой же выход из ls -A
, а не результат grep
с. Если вы хотите изменить вывод с ls -A
на less
(например, поменять порядок, чтобы обычные файлы были перечислены перед скрытыми), попробуйте следующее:
ls -A | tee >(grep ^[.]) >(grep -v ^[.]) >/dev/null | less
Без >/dev/null
, вывод grep
s будет добавлен к выводу ls -A
вместо его замены.