我想在最后一行之前的一行中附加/连接文本。所以如果我的原始文件是:
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