我使用以下 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 -