Use sed para substituir um texto e imprimi-lo em uma nova linha e também imprimi-lo

1

Eu preciso substituir o texto em um arquivo e enviar todo o arquivo de texto com o texto alterado e também imprimi-lo na tela.

Isso é o que eu recebi:

sed 's/123/456/g' number > number123

Isso altera o texto e as saídas para o novo arquivo, mas não imprime no terminal.

Como faço para que ele imprima o arquivo de texto alterado no terminal nesse único comando.

Qualquer ajuda é apreciada.

    
por shawn edward 02.03.2016 / 02:09

2 respostas

4

Você pode simplesmente fazer o seguinte:

sed 's/123/456/g' number | tee number123

O comando tee lê a entrada padrão e grava na saída e nos arquivos padrão.

    
por 02.03.2016 / 02:22
2
sed 's/123/456/g; w number123' number

Observe que ele imprime (e grava em number123 ) todas as linhas, incluindo aquelas que não contêm 123 .

Para imprimir apenas os modificados:

sed -e 's/123/456/gw number123' -e t -e d number
    
por 02.03.2016 / 16:48

Tags