1

我试图在文件中间的最后一个空行之后插入一行文本。

示例文件:

some text
more text

blah blah blah
more blah

some more text
and even more text

插入的文本应该在该文件的第 6 行。到目前为止,我尝试过这样的命令:

sed '/\n/ i some text' file

但是,到目前为止,没有任何效果。有任何想法吗?谢谢。

4

3 回答 3

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 找到空行(或仅填充空白字符),通过管道输送到尾部以选择最后一个。

于 2012-07-12T08:03:08.610 回答
0

也许这可以帮助

perl -p00e 'eof&&s/^/-- new text --\n\n/' text.txt
于 2012-07-12T09:55:36.773 回答
0

这可能对您有用(GNU sed):

 sed ':a;$!{N;/\n$/!ba;p;d};s/^/-> some text\n/' file
于 2012-07-12T15:37:25.890 回答