Я хотів би змінити рядок, коли інший рядок збігається під розділом файлу, використовуючи команду 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>
Я хотів би змінити значення групи тегів на X3, коли значення альбому тегів становить 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}
У вас є ідея?