帮助SED语法:unterminated` s'命令

Pre*_*gha 2 regex cygwin sed

编辑:我在Windows Vista上使用CYGWIN/GNU sed版本4.1.5,我想要一个不区分大小写的搜索

我想用sed替换内联,以下内容:

c:\ DEV\Suite \在这里--- blah 12 334 xxx zzzzz etc\Modules等

编辑:这里的任何东西--- blah 12 334 xxx zzzzz etc意味着任何东西都可以出现在这里.很抱歉没有这个.

在一个像行的文件中

FileName="c:\DEV\Suite\anything here --- blah 12 334 xxx zzzzz etc\Modules\.... snipped ...."
Run Code Online (Sandbox Code Playgroud)

我提供的价值,说:

X项目 - 版本99.98

所以文件最终得到:

FileName="c:\DEV\Suite\Project X - Version 99.98\Modules\.... snipped ...."
Run Code Online (Sandbox Code Playgroud)

我的尝试:

c:\temp>sed -r -b s/Dev\\Suite\\.*\\Modules/dev\\suite\\simple\\/g test.txt
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

sed: -e expression #1, char 42: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)

谢谢.编辑:我已经尝试过添加引号.

ret*_*ile 7

它是'/'之前的'\\'.显然你需要4个反斜杠.

sed -r -b "s/Dev\\\\Suite\\\\.*\\\\Modules/dev\\\\suite\\\\simple\\\\/g" test.txt
Run Code Online (Sandbox Code Playgroud)

我认为shell在将'\''解释为'\'之前将其传递给sed,然后sed在它得到的内容上做同样的事情.

单引号可行,所以:

sed -r -b 's/Dev\\Suite\\.*\\Modules/dev\\suite\\simple\\/g' test.txt
Run Code Online (Sandbox Code Playgroud)