オリジナルファイル
.
.
.
startpattern
text to copy 1
test to copy 2
endpattern
.
.
.
thirdpattern
結果ファイル
.
.
.
startpattern
text to copy 1
test to copy 2
endpattern
.
.
.
thirdpattern
text to copy 1
test to copy 2
.
.
.
答え1
これは、スクリプト可能なエディタでは非常に簡単に見えますed
。重要なコマンドは次のとおりです。
/startpattern/+1, /endpattern/-1 t /thirdpattern/
コマンドラインを使用してファイルを変更できます。
printf '%s\n' '/startpattern/+1, /endpattern/-1 t /thirdpattern/' w q | ed -s filename
...ed
メインコマンド、w
riteコマンド、q
uitコマンドの3つのコマンドを入力バッファにパイプします。
正しい行をキャプチャできるように、各パターンの正規表現を強化する必要があります。最初の2つのパターンの+1と-1は一致を前後に調整し、対応する2つのパターンがある行を除外します。