【问题标题】:Sed replace strings starts with special characterssed 替换字符串以特殊字符开头
【发布时间】:2021-08-14 10:20:15
【问题描述】:

我正在尝试用 ; php_value[date.timezone] = Europe/Riga 中的 sed 替换字符串

我尝试过这样的事情:

sed -i 's/; php_value[date.timezone] = Europe/\Riga/; php_value[date.timezone] = America/\Sao_Paulo/g' file

输出: sed: -e 表达式 #1, char 47: 命令后的多余字符

【问题讨论】:

    标签: sed


    【解决方案1】:

    你可以使用

    sed -i 's/; php_value\[date\.timezone] = Europe\/Riga/; php_value[date.timezone] = America\/Sao_Paulo/g' file
    

    请参阅online demo

    注意

    • [. 是特殊的正则表达式元字符,需要转义以匹配文字 [.,因此,正则表达式部分中的 \[\.
    • / 在这里是一个正则表达式分隔符,也应该被转义。要转义 /,请使用 \/。好吧,如果您使用另一个正则表达式分隔符 char,则无需转义 /,例如
    sed -i 's,; php_value\[date\.timezone] = Europe/Riga,; php_value[date.timezone] = America/Sao_Paulo,g' file
    

    在此处将逗号视为正则表达式分隔符。

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多