有人可以帮忙解释为什么吗?
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
我已经尝试了一些调整,尝试在不同的地方加入转义括号,但现在我不确定还能做什么。
有人可以帮忙解释为什么吗?
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
我已经尝试了一些调整,尝试在不同的地方加入转义括号,但现在我不确定还能做什么。
因为-ire
将re
指定为-i
的参数,而不是sed
的选项。
将-i
指定为单独的选项即可正常工作。
sed -i -re 's/(e)\1{2,}/ee/g' file
sed -re 's/([Ee])\1{2,}/ee/g'
可以正常工作。也许您可以手动重构sed脚本。 - ghoti's/eee*/ee/g'
。 - tripleee