sed
- ваш друг
sed '/^<user dn=/s/CN=[^,]*,DN=[^"]*\"/String_1,String2/' filename
должен это сделать. Если вы хотите, чтобы String_1
и String_2
выбирались в реальном времени, вы можете использовать для этого переменные. Я бы написал сценарий
#!/bin/bash
read -p"Enter string1" str1
read -p"Enter string2" str2
sed -i "/^<user dn=/s/CN=[^,]*,DN=[^\"]*\"/$str1,$str2/" /path/to/input.xml
Параметр -i
сразу изменяет файл.
Примечание
Двойные кавычки используются в сценарии sed, потому что они позволяют расширять переменную bash. Хотя по той же причине мы избежали двойных кавычек, которые используются в самом шаблоне.