Unidireccional:archivo de muestra
$ cat file
Cygwin
Unix
Linux
Solaris
AIX
Usando sed, reemplazando la siguiente línea después del patrón 'Unix' con 'hola':
$ sed '/Unix/{n;s/.*/hi/}' file
Cygwin
Unix
hi
Solaris
AIX
Para su pregunta específica:
$ sed '/<key>ConnectionString<\/key>/{n;s/<string>.*<\/string>/<string>NEW STRING<\/string>/}' your_file
<key>ConnectionString</key>
<string>NEW STRING</string>
Esto podría funcionar para usted (GNU sed):
sed '/<key>ConnectionString<\/key>/!b;n;c<string>changed_value</string>' file
!b
niega la dirección anterior (regexp) y sale de cualquier procesamiento, finalizando los comandos sed, n
imprime la línea actual y luego lee la siguiente en el espacio del patrón, c
cambia la línea actual a la cadena que sigue al comando.
Funciona. Adicionalmente me interesa mencionar que si escribes,
sed '/<key>ConnectionString<\/key>/!b;n;n;c<string>changed_value</string>' file
Tenga en cuenta las dos n, se reemplaza después de dos líneas y así sucesivamente.