![]() |
1
39
我可以使用vista和cygwin 1.7.0重现这种行为。
两个反斜杠变为shell中的一个反斜杠,然后在sed中,该反斜杠将转义中间分隔符正斜杠。
其中三个:前两个变成了壳中的一个,然后从塞德的第三个逃脱。
四:每对在壳中变成一对,然后第一对在sed中逃逸第二对。
编辑:
哦,我忘了说单引号和双引号对我来说都是一样的(
|
![]() |
2
10
你的外壳(可能是bash)正在进行自己的逃跑,这让你很困惑。您可以使用echo命令查看正在传递的内容,或者很容易编写自定义程序(通常称为“showargs”或类似程序): $ echo "s/\\\/\//" s/\\/\// $ echo "s/\\/\//" s/\/\// 您还可以使用单引号,这在bash中被区别对待。 |
![]() |
3
6
这是由于
Posix
指定如何
换言之,
所以,如果
打趣之后,
用同样的理由,当
|
![]() |
4
4
请举一个你未来拥有的例子。在sed中,假设您要替换a“
你只需要逃避一次。 编辑:以@op为例,由于您使用的是cmd.exe而不是bash/ksh,因此cmd.exe不喜欢单引号。我不能提出你的方案。这适用于我在Windows上使用2个斜杠的GNU SED 如
|
![]() |
5
1
在我的Cygwin版本中,它的工作方式和最初的海报上说的一样,但是,如果我使用单引号,它的工作方式(通常)会有所不同。 $ echo "sample_input\whatever" | sed 's/\\/\//' sample_input/whatever $ echo "sample_input\whatever" | sed "s/\\/\//" sed: -e expression #1, char 7: unterminated `s' command 六羟甲基三聚氰胺六甲醚。。 |
![]() |
6
0
我想,你假设
也,
所以
|
![]() |
7
0
在cygwin上用两个反斜杠替换一个反斜杠需要以下表达式: SED-E“S \ \ \ \ \ \ \ \ \ \ G” |
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 6 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 6 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 6 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 6 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 6 月前 |