Passa a saída de um comando encadeado para grep ou anexar ao arquivo

0

Eu estou tentando matar e reiniciar o pulseaudio no modo detalhado, eu preciso procurar na saída. Eu tentei usar o pipe para grep a saída. Depois disso, tentei anexar a saída a um arquivo. Estou fazendo algo errado.

O comando kill e start é

pulseaudio -k && pulseaudio -v

Estou tentando fazer algo assim:

pulseaudio -k && pulseaudio -v | grep conf
(pulseaudio -k && pulseaudio -v) > 'aout.txt'
pulseaudio -k && (pulseaudio -v > 'aout.txt')

Ainda exibe apenas a saída como está no terminal. O que estou fazendo errado?

Note que eu prefiro o grep do que adicionar ao arquivo.

    
por Mina Michael 16.03.2017 / 18:30

1 resposta

3

Você provavelmente precisará redirecionar também o erro padrão dos comandos. (usando o agrupamento de comando bash, para capturar ambos comandos fluxos de erro com um único redirecionamento)

{ pulseaudio -k && pulseaudio -v ; } 2>&1 | grep 'conf'

ou usando o operador de atalho |&

{ pulseaudio -k && pulseaudio -v ; } |& grep 'conf'

Para redirecionar para um arquivo

{ pulseaudio -k && pulseaudio -v ; } > aout.txt 2>&1

(observe a ordem dos redirecionamentos) ou seu equivalente semântico

{ pulseaudio -k && pulseaudio -v ; } &> aout.txt 2>&1

Veja a seção REDIRECTION de man bash

    
por steeldriver 16.03.2017 / 18:43