Tomando entrada de um arquivo e escrevendo para ele no mesmo comando

3

Meu encoder é um programa que codifica um trecho de texto e imprime o texto codificado na saída padrão. Mas quando eu faço:

cat file.txt | encoder > file.txt

o que acontece é que todo o texto em file.txt é completamente apagado e não resta nada nele.

Por que isso acontece? Há algo de errado com o comando?

Nota: Não há nada errado com o codificador. Funciona perfeitamente. Eu posso conseguir o que eu quero com

cat file.txt | encoder > file2.txt
    
por MichaelB 17.07.2013 / 22:07

2 respostas

3

Você deseja sponge ; está no pacote moreutils.

cat file.txt | encoder | sponge file.txt
    
por Adrian 17.07.2013 / 22:09
0

Você pode usar o Vim no modo Ex:

ex -sc '%!encoder' -cx file.txt
  1. % seleciona todas as linhas

  2. ! comando de execução

  3. x salvar e fechar

por Steven Penny 11.04.2016 / 00:38