às vezes / dev / tty pode ser usado para isso ...
ls /bin /usr/bin | sort | uniq | tee /dev/tty | grep out | wc
Eu sei que para capturar o conteúdo de um pipeline em um estágio intermediário de processamento, usamos tee como ls /bin /usr/bin | sort | uniq | tee abc.txt | grep out , mas e se eu não quiser redirecionar o conteúdo de após uniq para abc.txt mas para a tela (através do stdout, é claro) para que, como resultado final, eu terei na tela, o conteúdo intermediário após uniq, bem como o conteúdo após grep.
Este comando funcionou para mim.
ls /bin /usr/bin | sort | uniq | tee /dev/pts/0 | grep out
Você pode verificar qual é o seu terminal usando o comando tty e substituir o tee para redirecionar a saída para esse terminal.
Referências
Mais uma opção: usar a substituição de processos:
ls /bin /usr/bin | sort | uniq | tee abc.txt >(grep out)
Ou, de outra forma:
ls /bin /usr/bin | sort | uniq | tee abc.txt >(cat) | grep out
mkfifo myfifo
cat myfifo& ls /bin /usr/bin | sort | uniq | tee myfifo | grep out
mkfifo cria um arquivo especial FIFO (first in, first out), a.k.a., um pipe nomeado.
Inicie um cat assíncrono para ler o fifo e, em seguida, execute o pipeline,
tee do resultado intermediário para o fifo.
Isso produzirá uma mensagem [1]+ Done cat myfifo no final.
Você pode suprimir isso com esse truque de mágica:
(cat myfifo&); ls /bin /usr/bin | sort | uniq | tee myfifo | grep out
Por um longo prazo, solução robusta, você pode querer criar um fifo permanente
(por exemplo, $HOME/myfifo ) em vez de criar um novo a cada vez.
Mas isso falhará se você estiver executando várias instâncias disso simultaneamente.
Alternativamente,
mktemp ). /tmp ). No caso em que isso está sendo executado a partir de um terminal, você pode
touch abc.txt then tail -f abc.txt
ls /bin /usr/bin | sort | uniq | tee /dev/fd/2 | grep out | wc
Em um sistema Linux, você pode usar os links /dev/fd/[num] como pipes nomeados em muitos casos. Isso irá duplicar o stdout para o stderr, que, tipicamente, é o seu terminal screen , mas não precisa ser.
Tags command-line bash tee