我试图在文件中间的最后一个空行之后插入一行文本。
示例文件:
some text
more text
blah blah blah
more blah
some more text
and even more text
插入的文本应该在该文件的第 6 行。到目前为止,我尝试过这样的命令:
sed '/\n/ i some text' file
但是,到目前为止,没有任何效果。有任何想法吗?谢谢。
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 找到空行(或仅填充空白字符),通过管道输送到尾部以选择最后一个。
也许这可以帮助
perl -p00e 'eof&&s/^/-- new text --\n\n/' text.txt
这可能对您有用(GNU sed):
sed ':a;$!{N;/\n$/!ba;p;d};s/^/-> some text\n/' file