【问题标题】:sed windows replace string containing spacesed windows 替换包含空格的字符串
【发布时间】:2013-03-11 17:08:34
【问题描述】:

我正在尝试通过 windows cmd shell 使用 sed for windows 将字符串 AUD A0-FX.20 替换为 AUD/USD.20

我认为 Windows shell 不能很好地处理字符串中的空格。这是我正在运行的 -

SED -e s{AUD A0-FX.20{AUD/USD.20{  "C:\sed\bin\text.txt" > "C:\sed\bin\text1.txt"

但我收到错误 SED: -e expression #1, char 5: unterminateds' 命令`

我使用{ 作为分隔符,因为我已经在替换字符串中有/。任何帮助,将不胜感激。我正在使用sed 来自http://gnuwin32.sourceforge.net/packages/sed.htm 的Windows

【问题讨论】:

  • windows下不需要引用你的s{..{..{吗?

标签: sed


【解决方案1】:

我不知道这是否能解决你的问题,因为无法在 Windows 中测试,但我会给出两个建议:

  1. .sed 是特殊的,并且匹配任何字符。像\.一样逃脱它
  2. 引用您的sed 指令,使用单引号或双引号,例如"s{...{...{"

【讨论】:

    【解决方案2】:

    试试:

    sed "s|AUD A0-FX\.20|AUD/USD.20|"
    

    【讨论】:

    • 如果我记得,单引号在 CMD shell 中没有特殊含义,需要双引号。
    猜你喜欢
    • 1970-01-01
    • 2017-12-03
    • 2020-09-07
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2020-06-12
    相关资源
    最近更新 更多