linux - 使用 sed 就地反向引用

标签 linux sed backreference in-place

谁能帮忙解释一下原因

sed -re 's/(e)\1{2,}/ee/g' filename

输出(根据需要)

Jeep

但是

sed -ire 's/(e)\1{2,}/ee/g' filename

给我

sed: -e expression #1, char 16: Invalid back reference

我试过摆弄并将转义括号放在不同的地方,但我不确定现在还能做什么。

最佳答案

因为 -irere 指定为 -i 的参数,而不是 sed 的选项。

-i 指定为单独的选项可以正常工作。

sed -i -re 's/(e)\1{2,}/ee/g' file

关于linux - 使用 sed 就地反向引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359895/

相关文章:

python - 如何延迟 Python 中脚本的执行?

linux - 检查多行并在末尾添加一个字符串

linux - bash 中的记录器和数组扩展问题

linux - 抑制从 tcl 中的流中调用的可执行文件打开的新窗口

linux - 如何使用 sed 删除度数符号(M-0 又名上标零?)

shell - 如何按行数限制(或截断)文本文件?

bash - 如何grep单引号之间的所有内容?

java - 将先前捕获的组与正则表达式匹配(反向引用?)

regex - 在 PostgreSQL 中匹配部分反向引用

regex - Delphi TRegEx 反向引用损坏?