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で選択され、最後の行を選択するためにテールにパイプされます。

于 2012-07-12T08:03:08.610 に答える
0

これはあなたのために働くかもしれません(GNU sed):

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

多分これは助けることができます

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