从命令行追加文本到文件而不使用ioredirect

我们如何通过单行命令在文件中附加文本而不使用ioredirect?

如果你不介意使用sed ,

 $猫testing 
这是第一行
 $ sed -i'$ a \这是没有redirect的第2行'testing 
 $猫testing 
这是第一行
这是没有redirect的第2行

由于文档可能有点长,一些解释:

  • -i表示就地转换,因此所有更改都将在您指定的文件中发生
  • $用于指定最后一行
  • a手段后面追加一行
  • \被简单地用作分隔符

如果你只是想手头上的东西,那么sed答案会为你工作。 如果文本在文件中(比如file1.txt和file2.txt):

使用Perl:

perl -e 'open(OUT, ">>", "outfile.txt"); print OUT while (<>);' file*.txt

NB,而“ >>可能看起来像redirect的指示,它只是文件打开模式,在这种情况下“追加”。

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

 ex -sc 'a|BRAVO' -cx file 
  1. 附加文本

  2. 保存并closures