batch-file - sed:如何替换某物。由反斜杠后跟引用

标签 batch-file sed backslash

尽管关于 Stackoverflow 的所有sed-backslash 讨论我都找不到针对我的特定问题的有效解决方案。我想在文件中的某个字符串前面加一个反斜杠:something ->\something

sed -i -- 's/\(something\)/\\\1/g' file

这总是返回字符串 \1 而不是 \something,因为出于某种原因 sed 认为它应该转义第三个反斜杠。可以通过在 sed 命令中的 \\\1 之间插入空格来实现(从我的角度来看更合乎逻辑的)行为,但结果是 \something(即在结果中插入空格)这不是我想要的。

我在 Windows 上的批处理文件中运行此命令,使用 cygwin 中的 sed(我希望这无关紧要,因为我的目标是跨平台解决方案).

编辑:/usr/bin/sed 版本 4.2.2。

最佳答案

在带有 CygwinWindows cmd 中,使用此 sed 命令:

sed -e 's/\(something\)/\\\\\1/g' file

关于batch-file - sed:如何替换某物。由反斜杠后跟引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41039301/

相关文章:

vbscript - 如何使用 Windows 脚本以安全模式重新启动计算机?

windows - 如何使用CMD制作批处理文件?

batch-file - xcopy 通配符源文件夹名称到目标

bash - 从文件中提取特定列到逗号分隔的字符串中

regex - 像使用 sed 一样替换具有模式的字符串

bash - Sed:在变量中间添加子字符串

javascript - 用于替换单个反斜杠的正则表达式,不包括后跟某些字符的反斜杠

javascript - 如何在Javascript中用两个反斜杠替换反斜杠

windows - 如何遍历 Windows 批处理文件中的文件夹树/子树?

regex - Logstash kv 过滤器问题,\r\n 作为字段分割(反斜杠)