ファイルの途中の最後の空の行の後にテキスト行を挿入しようとしています。
サンプルファイル:
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で選択され、最後の行を選択するためにテールにパイプされます。
これはあなたのために働くかもしれません(GNU sed):
sed ':a;$!{N;/\n$/!ba;p;d};s/^/-> some text\n/' file
多分これは助けることができます
perl -p00e 'eof&&s/^/-- new text --\n\n/' text.txt