Мне нужно заменить несколько строк в xml-файле, используя sed. вот мой входной файл:sed заменить несколько тегов xml
<firstTag>Y</firstTag>
<secondTag/>
Я хочу, чтобы заменить эти строки в формате ниже:
<firstTag></firstTag>
<secondTag>Y</secondTag>
Я попытался с помощью этой команды:
sed -i -r "s#<firstTag>Y</firstTag>\n.*#<firstTag></firstTag>\n<secondTag>Y</secondTag>#g" input.txt
Но это не работает. Я также замечаю, что перед вторым типом есть вкладка (^ я использую меньше команды). Будет ли это влиять на команду sed? Пожалуйста, помогите мне об этом.
Обновление: Есть несколько из secondTag вхождения в файле, и я только хочу, чтобы изменить значение secondTag на Y только после того, как найти, что предыдущее значение firstTag является Y. Например, если в input.txt:
<firstTag>Y</firstTag>
<secondTag/>
<firstTag/>
<secondTag/>
Я хочу, чтобы заменить на:
<firstTag></firstTag>
<secondTag>Y</secondTag>
<firstTag/>
<secondTag/>
Это дает неправильный ' ' правильный запрос '' –
Jotne
Спасибо. Обновлен мой ответ. – sat