片道:サンプルファイル
$ cat file
Cygwin
Unix
Linux
Solaris
AIX
sed を使用して、パターン「Unix」の後の次の行を「hi」に置き換えます:
$ sed '/Unix/{n;s/.*/hi/}' file
Cygwin
Unix
hi
Solaris
AIX
特定の質問について:
$ sed '/<key>ConnectionString<\/key>/{n;s/<string>.*<\/string>/<string>NEW STRING<\/string>/}' your_file
<key>ConnectionString</key>
<string>NEW STRING</string>
これはうまくいくかもしれません (GNU sed):
sed '/<key>ConnectionString<\/key>/!b;n;c<string>changed_value</string>' file
!b
前のアドレス (regexp) を否定し、すべての処理を中断して、sed コマンドを終了します n
現在の行を出力し、次の行をパターン空間に読み込みます c
現在の行をコマンドに続く文字列に変更します。
できます。あなたが書いたら、
sed '/<key>ConnectionString<\/key>/!b;n;n;c<string>changed_value</string>' file
2 つの n に注意してください。2 行の後に置き換わります。