所以我做了这个规律epression与egrep的运作良好,并能够完成任务:sed和正则表达式
egrep "(^|[ ]+)([^ ]+)([ ]+)\2([ ]+|$)" $1
我试图与它的sed但由于某种原因它不工作的工作。
sed '/\(^|[ ]\+\)\([^ ]\+\)\([ ]\+\)\2\([ ]\+|$\)/!d' $1
如果有人可以帮助我了解什么是它的问题,我如何能在egrep的,但使用sed使用正则表达式等,或用回溯解释如何SED的作品?
所以我做了这个规律epression与egrep的运作良好,并能够完成任务:sed和正则表达式
egrep "(^|[ ]+)([^ ]+)([ ]+)\2([ ]+|$)" $1
我试图与它的sed但由于某种原因它不工作的工作。
sed '/\(^|[ ]\+\)\([^ ]\+\)\([ ]\+\)\2\([ ]\+|$\)/!d' $1
如果有人可以帮助我了解什么是它的问题,我如何能在egrep的,但使用sed使用正则表达式等,或用回溯解释如何SED的作品?
竖线(交替)也应该被转义:
sed '/\(^|[ ]\+\)\([^ ]\+\)\([ ]\+\)\2\([ ]\+|$\)/!d' "$1" # Yours.
sed '/\(^\|[ ]\+\)\([^ ]\+\)\([ ]\+\)\2\([ ]\+\|$\)/!d' "$1" # correct.
但是,如果你在sed呼吁延长rexexp更容易:
sed -E '/(^|[ ]+)([^ ]+)([ ]+)\2([ ]+|$)/!d' "$1"
使用'-r'(或' - E')选项来启用扩展的正则表达式风格。 –
在sed中不应该是'\ |'吗? – melpomene