perl + 在文件最后一行末尾附加 WORD

perl + 在文件最后一行末尾附加 WORD

我使用以下 perl 一行来将 WORD 附加到文件最后一行的末尾

     perl -p -i -e 's/$/WORD/;' file

但它在每一行都附加了 WORD -

如何修复 perl 语法以便仅在文件的最后一行附加 WORD

例子

  more file

  AAAAA BBB
  WWWWW
  EEEEE WORD

答案1

您需要使用以下方法检测是否已到达文件末尾结束语

perl -p -i -e 'eof && s/$/WORD/;'  file

答案2

下面是等效的使用方法sed

sed -ie '$s/$/WORD/' file

答案3

只需添加-0标志:

perl -0pie 's/$/WORD/' file

顺便说一句,如果没有添加扩展,我永远不会使用它-i。如果您的 Perl 没有按照您的意图执行,您的输入将会丢失。顺便说一句,;不是 Perl 中的语句终止符,而是语句分隔符。

perl -i.orig -0pe 's/$/WORD/' file

另一个方便的习语,用于测试:

perl -0pe 's/$/WORD/' file | diff file -

相关内容