Взятие ввода из файла и запись в него одной и той же командой

My encoder - это программа, которая кодирует фрагмент текста и печатает закодированный текст на стандартный вывод. Но когда я делаю:

cat file.txt | encoder > file.txt

, то получается, что весь текст в file.txt полностью стирается и в нем ничего не остается.

Почему это происходит? Что-то не так с командой?

Примечание. С энкодером все в порядке. Работает отлично. Я могу добиться того, чего хочу, с

cat file.txt | encoder > file2.txt
3
задан 30 April 2016 в 07:20

2 ответа

Вы хотите sponge; это в пакете moreutils.

cat file.txt | encoder | sponge file.txt
0
ответ дан 30 April 2016 в 07:20

Вы можете использовать Vim в режиме Ex:

ex -sc '%!encoder' -cx file.txt
  1. % выбрать все строки

  2. ! запустить команду [ 1110]

  3. x сохранить и закрыть

0
ответ дан 30 April 2016 в 07:20

Другие вопросы по тегам:

Похожие вопросы: