i try to delete an whole tag in an xlf-file like:
<trans-unit id="test" resname="test">
<source>Panels</source>
</trans-unit>
Is there a way delete from string <trans-unit id="test" till string </trans-unit>?
I managed to delete two additional lines but it will be a problem on a multiline-value.
This is my current version:
sed -i.bak "/id=\"$KEY\"/, 2d" "$FILEPATH"
CodePudding user response:
Since the file is well-indented, you can use a range pattern with sed:
sed -i.bak '/<trans-unit id="'"$KEY"'"/,/<\/trans-unit>/d' "$FILEPATH"
The command will find all lines between a line that contains <trans-unit id= the ID in the KEY variable, and then " char, and a line that contains </trans-unit>, and then will delete the found line range(s) (due to the d flag).
