最後の行の前の2行に新しい行を挿入したいと思います。したがって、元のファイルが次の場合:
1
2
3
4
5
結果は次のようになります
1
2
3
New line
4
5
使用ed
:
$ printf '$-1i\nNew line\n.\n,p\n' | ed -s file
1
2
3
New line
4
5
ed
スクリプト編集:
$-1i
New line
.
,p
これは最初に、最後から1行上の行に移動し($-1
)、i
その行の上に新しいコンテンツを挿入します()。挿入される内容は、単一のドットで終了します(複数行にすることができます)。最後,p
は、端末上の完全に変更されたバッファを表示します。
これを新しいファイルにリダイレクトするか、を使用して元のファイルに書き戻すことができます。
printf '$-1i\nNew line\n.\nw\n' | ed -s file
(に,p
変更されますw
)。
この後者はex
、このジョブに同様に使用する方法でもあります。
printf '$-1i\nNew line\n.\nw\n' | ex -s file
ed
およびex
は、システムに付属している標準の行指向のエディター(フルスクリーンエディターではなく)です。-s
これはそれぞれに異なることを意味しますが、このようなバッチモード編集タスクを実行する場合は両方に適していることに注意してください。
参考文献:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加