纯粹学术,但令我感到沮丧。
我想纠正这个文字:
there there are are multiple lexical errors in this line line
使用sed。我到目前为止:
sed 's/\([a-z][a-z]*[ ,\n][ ,\n]*\)\1/\1/g' < file.text
除了最后翻了一句话之外,它还纠正了所有内容!
there are multiple lexical errors in this line line
请问一位大师请解释为什么上面的内容没有处理最后的文字?
答案 0 :(得分:10)
这是因为在最后一种情况下(line
)你的正则表达式内存1中会有line
(后跟一个空格的行),你正在搜索它的重复。由于在匹配失败的最后line
之后没有空格。
要解决此问题,请在结束字line
后面添加一个空格。
或者,您可以将正则表达式更改为:
sed -e 's/\b\([a-z]\+\)[ ,\n]\1/\1/g'