regex - sed 中的反向引用返回错误值

标签 regex macos sed

我正在尝试使用 sed 替换表达式。正则表达式在 vim 中有效,但在 sed 中无效。我用斜杠替换数字前的最后一个破折号,所以

/www/file-name-1 

应该返回

/www/file-name/1

我正在使用以下命令,但它一直输出/www/file-name/0

sed 's/-[0-9]/\/\0/g' input.txt

我做错了什么?

最佳答案

您必须将数据括在括号中以便稍后引用它,sed 开始计入 1。要恢复所有匹配的字符而不需要括号,可以使用 & 符号。

sed 's/-\([0-9]\)/\/\1/g' input.txt

结果是:

/www/file-name/1

关于regex - sed 中的反向引用返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188495/

相关文章:

php - 应该在正则表达式中转义哪些文字字符?

objective-c - 在 Mac 应用程序中嵌入可执行文件

python - 导入 python-igraph 时出错

linux - 使用 sed/awk 命令找到模式后修改文本文件的内容

bash 替换每一行中的第一个字符

javascript - 带警报的快速正则表达式

python 正则表达式与 re.split()

regex - 外壳脚本 : search and replace over multiple lines

swift - 进程无法从 Swift 中的标准输入读取

linux - 仅将指定数据合并到单个 csv 文件中