Я хотел бы изменить строку, когда другая строка совпадает в разделе файла с помощью команды Sed (или awk). Вот пример файла:
Извлечение MyFic.txt:
<PlayList>
... Some tags ...
<Album>X1</Album>
... oThers tags ...
<Group>X2</Group>
... Some tags ...
</PlayList>
<PlayList>
... Some tags ...
<Album>...</Album>
... oThers tags ...
<Group>...</Group>
... Some tags ...
</PlayList>
Я хотел бы изменить значение тега Group на X3, когда значение Album тега равно X1 только в раздел PlayList. Следующая команда работает нормально:
sed -i '/< Album>X1/,/<\/PlayList>/ s/< Group>.*/< Group>X3<\/location>/' MyFic.txt
Но это не совсем то, чего я действительно хочу. Я хотел бы что-то вроде:
sed -i '/< PlayList>/,/<\/PlayList>/ {Containing < Album>X1} s/< Group>.*/< Group>X3<\/location>/' MyFic.txt
Я не знаю, как кодировать эту часть с помощью команды sed: {Containing < Album>X1}
У тебя есть идея?