#!/bin/bash while read -r line do TYPE=$(echo $line | cut -d ' ' -f1) ID=$(echo $line | cut -d ' ' -f2) NEW_TAGS=$(echo $line |\ cut -d' ' -f3- | xargs -n2 echo |\ sed -r 's/^([^ ]+) (.+)//' |\ paste -s) TAG_PATTERN=$(echo $line |\ cut -d' ' -f3- | xargs -n2 echo |\ cut -d' ' -f1 | paste -s -d'|') echo $TAG_PATTERN > /dev/tty cat $1 |\ sed -nr "/<$TYPE id=\"$ID\"/,/<\/$TYPE/ { /<$TYPE id=\"$ID\"/ a \ \ \ \ $NEW_TAGS /> $1.osc done sed -ir '1 i 1 i $ a $ a ' $1.osc