使用同一命令从文件获取输入并写入文件

使用同一命令从文件获取输入并写入文件

我的encoder程序对一段文本进行编码,并将编码后的文本打印到标准输出。但是当我这样做时:

cat file.txt | encoder > file.txt

所发生的情况是,所有的文本file.txt都被完全删除,并且什么都没有留下。

为什么会出现这种情况?命令有问题吗?

注意:编码器没有问题。它工作得很好。我可以用

cat file.txt | encoder > file2.txt

答案1

你想要的sponge;它在 moreutils 包中。

cat file.txt | encoder | sponge file.txt

答案2

你可以在 Ex 模式下使用 Vim:

ex -sc '%!encoder' -cx file.txt
  1. %选择所有行

  2. !运行命令

  3. x保存并关闭

相关内容