我正在尝试在文件中间最后一个空行之后插入一行文本。
some text
more text
blah blah blah
more blah
some more text
and even more text
插入的文本应该在该文件的第6行。到目前为止,我尝试过这样的命令:
sed '/\n/ i some text' file
但到目前为止,没有任何效果。有任何想法吗?感谢。
答案 0 :(得分:1)
使用grep和awk的不同解决方案:
awk -v last_empty_line=$(grep -nE '^[[:blank:]]*$' your_file | tail -1 | cut -c 1) '{print; if (NR==last_empty_line) print "->some new text here"}' your_file
awk在最后一个空行之后插入新文本;使用适当的grep选择最后一个空行的索引,该grep找到空行(或仅填充空白字符),用管道输入尾部以选择最后一行。
答案 1 :(得分:0)
也许这可以帮助
perl -p00e 'eof&&s/^/-- new text --\n\n/' text.txt
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed ':a;$!{N;/\n$/!ba;p;d};s/^/-> some text\n/' file