如何将包含制表符 (\t) 的行的一部分替换为 sed、awk 或任何其他?
线
<property name="systemVersionDsvTes" value="xxx"/>
或者
\t<property name=\"systemVersionDsvTes\"\t\t\t\tvalue=\"xxx\"/>
应改为:
<property name="systemVersionDsvTes" value="yyy"/>
或者
\t<property name=\"systemVersionDsvTes\"\t\t\t\tvalue=\"yyy\"/>
xxx值可以变化,属性名称前有一个制表符,值前有四个制表符。此名称-值对是 xml 文件中唯一的一对。
我尝试了以下方法:
ACTUAL_VERSION="\t<property name=\"systemVersionDsvTes\"\t\t\t\tvalue=\"4.1.9\"/>"
NEW_VERSION="\t<property name=\"systemVersionDsvTes\"\t\t\t\tvalue=\"4.1.10\"/>"
sed -i -e "s/$ACTUAL_VERSION/$NEW_VERSION/g" buildSIM.xml
这导致了一个错误: sed: -e expression #1, character 65: Unknow option for command `s' (s///?)
表达有什么问题?使用 GNU sed。