如何在 Linux 上查找和替换诸如“something=“string””之类的模式?

How to find and replace on patterns like ‘something=“string”’ on Linux?

我有一个 XML 文件,其中有如下标签。

<project name=“something” revision=“abc” />
<project name=“something2” revision=“xyz” />
...

如何在 Linux (Ubuntu) 上用我自己的字符串替换‘revision=“string here”’?

您可以使用 sed 进行原地替换。假设您想将 revision="abc" 替换为 revision="foobar" 结果命令将是(假设 XML 在名为 foo.xml 的文件中)

    cat foo.xml | sed 's/revision="abc"/revision="foobar"/g'

然后您将对需要进行的每一行/替换重复此操作。

完成这项工作的正确工具是 XSLT。有一点学习曲线,但它非常强大,你真的应该使用 XML-aware 工具来处理 XML 文件(如果你使用非 XML-aware 工具,如 sed , 产生无效 XML).

的风险很大