Satu cara:Contoh file
$ cat file
Cygwin
Unix
Linux
Solaris
AIX
Menggunakan sed, ganti baris berikutnya setelah pola 'Unix' dengan 'hi':
$ sed '/Unix/{n;s/.*/hi/}' file
Cygwin
Unix
hi
Solaris
AIX
Untuk pertanyaan spesifik Anda:
$ sed '/<key>ConnectionString<\/key>/{n;s/<string>.*<\/string>/<string>NEW STRING<\/string>/}' your_file
<key>ConnectionString</key>
<string>NEW STRING</string>
Ini mungkin berhasil untuk Anda (GNU sed):
sed '/<key>ConnectionString<\/key>/!b;n;c<string>changed_value</string>' file
!b
meniadakan alamat sebelumnya (regexp) dan keluar dari pemrosesan apa pun, mengakhiri perintah sed, n
mencetak baris saat ini dan kemudian membaca baris berikutnya ke dalam ruang pola, c
mengubah baris saat ini menjadi string yang mengikuti perintah.
Berhasil. Selain itu tertarik untuk menyebutkan bahwa jika Anda menulis,
sed '/<key>ConnectionString<\/key>/!b;n;n;c<string>changed_value</string>' file
Perhatikan dua n, itu menggantikan setelah dua baris dan seterusnya.