【问题标题】:How do I use sed to remove a double backslash如何使用 sed 删除双反斜杠
【发布时间】:2018-12-10 19:51:32
【问题描述】:

我正在尝试使用 sed 删除此字符串前面的这些双反斜杠,以便:

//s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js

会变成:

s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js

到目前为止,我有它可以通过 com 删除一个

sed 's/^\///g' output 

但我需要删除两个!请告诉我谢谢:)

【问题讨论】:

  • 您只需添加另一个 \/ ... 另请参阅:How to use different delimiters for sed substitute command?
  • @Sash,您也可以使用以下解决方案,您无需转义/ 以消除其特殊含义stackoverflow.com/a/51139804/5866580
  • 我不明白你怎么知道要删除 / 你使用 \/ 但不能飞跃使用 \/\/ 删除 //
  • @MarkSetchell 恕我直言,您不必很聪明地弄清楚如果 X 映射到 Y,那么 XX 可能 映射到 YY 并试一试! :-)
  • @RavinderSingh13 我赞成恢复。

标签: linux sed command


【解决方案1】:

您可以在命令中选择除/ 之外的其他分隔符:

sed 's;^//;;' file

或者,如果你想转义/

sed 's/^\/\///' file

【讨论】:

    【解决方案2】:

    你可以用 sed 试试这个方法:

    echo  "//s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js" | sed 's/^.*amazon/amazon/g'
    

    或通过变量的正则表达式

    $ variable="//s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js"
    $ echo ${variable#*//}
    $ s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js
    

    【讨论】:

      【解决方案3】:

      或者,如果您不想转义 / 并且只想用 NULL 替换 / 开头的,请执行以下操作。

      echo "//s3.amazonaws.com/umdheader.umd.edu/app/js/main.min.js" | sed 's#^//##'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-11
        • 2011-09-06
        • 1970-01-01
        • 2019-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-29
        相关资源
        最近更新 更多