Bash-skrip 删除整个 xlf-tag

Bash-skrip to delete whole xlf-tag

我尝试删除 xlf 文件中的整个标签,例如:

        <trans-unit id="test" resname="test">
            <source>Panels</source>
        </trans-unit>

有没有办法从字符串 <trans-unit id="test" 删除到字符串 </trans-unit>? 我设法删除了另外两行,但这将是多行值的问题。

这是我当前的版本:

sed -i.bak "/id=\"$KEY\"/,+2d" "$FILEPATH"

由于文件是 well-indented,您可以使用 sed:

的范围模式
sed -i.bak '/<trans-unit id="'"$KEY"'"/,/<\/trans-unit>/d' "$FILEPATH"

该命令将查找包含 <trans-unit id= + KEY 变量中的 ID,然后是 " 字符的行和包含 [=15 的行之间的所有行=],然后将删除找到的行范围(由于 d 标志)。