将字符串附加到文件倒数第二行的末尾

将字符串附加到文件倒数第二行的末尾

我想在最后一行之前的一行中附加/连接文本。所以如果我的原始文件是:

1 sometext
2 sometext
3 sometext
4 sometext
5 sometext

我的新文件是

1 sometext
2 sometext
3 sometext
4 sometext newtext
5 sometext

我已经知道如何插入的解决方案换行符但这是一个稍微不同的问题,因为我不想插入新行,而是希望连接文本。

答案1

逐行反转文件,将文本添加到第二行,然后再次反转文件:

tac file | sed '2s/$/ newtext/' | tac

答案2

vim理解这样的地址$-1

ex -sc '$-1s/$/ newtext/' +wq file

ex与...一样vim -e

答案3

$ awk 'NR>1{printf "%s%s", ors, prev; ors=ORS} {prev=$0} END{print OFS "newtext" ORS prev}' file
1 sometext
2 sometext
3 sometext
4 sometext newtext
5 sometext

答案4

通过计数行和算术获取地址:

sed "$(wc -l infile | awk '{print $1-1}')s/$/ newtext/" infile

相关内容