我正在尝试使用 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/