sed使用参考问题

Ari*_*yan 4 sed regular-expression

我正在尝试使用sed命令来查找/替换文件中的模式。
它给:

sed: -e expression #1, char 27: invalid reference \1 on `s' command's RHS
Run Code Online (Sandbox Code Playgroud)

我的命令是:

sed 's/"([A-Z]+)",/"\1","\L\1"/g' file.txt 
Run Code Online (Sandbox Code Playgroud)

问题是什么?
我该如何解决?

rah*_*hmu 6

你应该使用:

sed 's/"\([A-Z]+\)",/"\1","\L\1"/g' file.txt
Run Code Online (Sandbox Code Playgroud)

注意带有“\”的转义括号。

  • 或者使用 GNU `sed` 只需添加 `-r`(或 `--regexp-extended`)开关。无论如何,使用基本的正则表达式,您也必须转义 `+`。 (6认同)
  • 这些转义是基本正则表达式语法所必需的。与使用的字符串分隔符无关——如果你把 `sed` 代码放在一个单独的文件中,如果你使用基本的正则表达式,反斜杠仍然需要。 (2认同)