【发布时间】:2013-07-31 03:36:23
【问题描述】:
我正在编写一个 bash 脚本来替换包含空格的行中的模式。 文字看起来像这样 - property name="abcd" value="1234" 并且值在文件中多次更改,例如 value=3456 和 value=3689。只有包含 name="abcd" 和 value=something 的行应该被替换。
还有其他的例子,abcd 和 value 是分开调用的,不应该被替换。
我想在替换之前同时匹配条件 name="abcd" 和值。类似的东西
sed -i '/name="abcd" value=/c\property name="abcd" value="set"' filename
如何解决 "abcd" 和 value 之间的空格,以便 sed 可以将其识别为单个字符串?
输入:
`property name="abcd" value="1234"`
`property name="abcd" value="73845"`
`property name="abcd" value="8276"`
`property name="qwerty" value="1234"`
`blah blah ${abcd} blah`
期望的输出:
`property name="abcd" value="set"`
`property name="abcd" value="set"`
`property name="abcd" value="set"`
`property name="qwerty" value="1234"`
`blah blah ${abcd} blah`
【问题讨论】:
-
换句话说,您想用
blank替换1234和其他人? -
我不太明白您的问题,但您应该可能使用 XML 解析器。 . .
-
是的,将所有符合条件的实例的值替换为字符串空白
-
所有行的唯一共同模式是 name="abcd" 值。我想匹配该模式并进行换行
-
请添加输入示例和所需输出。
标签: bash sed pattern-matching