【问题标题】:How to work with "/" using sed in shell script如何在 shell 脚本中使用 sed 处理“/”
【发布时间】:2016-01-18 08:56:04
【问题描述】:

我正在尝试使用 shell 脚本替换 .xml 文件中的一行(在 MAC OSX 上工作)。问题是:我想将标签<source-path>/Users/myouser</source-path> 更改为<source-path>/Users/otherUser</source-path>我有两个问题:

1) 如何使用 sed 处理“/”? 2) 可以使用正则表达式吗?

谢谢

【问题讨论】:

  • 用 sed 计算文字斜线:斜线不是特殊字符,如果使用它作为分隔符,则需要对其进行转义:s/pat\/pat/repl/,但您可以选择其他分隔符:@987654324 @(在这种情况下,无需转义)。关于xml解析,使用sed不是最好的方法而且容易出错,尝试找个工具来操作xml(或者使用脚本语言)。
  • 非常感谢您的帮助!

标签: regex macos bash shell sed


【解决方案1】:

最简单的答案是在表达式中使用不同的分隔符,例如:

sed -e 's|/Users/myouser|/Users/otherUser|' file.xml

至于你是否可以使用正则表达式——你使用的是sed,所以可以。

使用 sed 修改 XML 是一种脆弱且容易出错的方法的标准免责声明。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2019-12-29
    • 2019-02-24
    • 2011-09-01
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多