我的文件看起来像
cat new
:
ALL ALLOFTHEM ALL1
OPS BE2A OPS1
ABE ABE ABE1
下面的 sed 查询给出的结果为第一行
sed -n '/\([A-Z]\{1,\}\)\1/p' new
:
ALL ALLOFTHEM ALL1
我猜测第二行也会匹配,因为 OPS 的字符长度也大于 1。
有任何想法吗?
答案1
我猜测第二行也会匹配,因为 OPS 的字符长度也大于 1。
那么,您想匹配任何具有多个连续大写字母的行吗?如果是这样,请使用:
$ sed -n '/[A-Z]\{2,\}/p' new
ALL ALLOFTHEM ALL1
OPS BE2A OPS1
ABE ABE ABE1
为什么你的表情不是这样的? 你的正则表达式是:
\([A-Z]\{1,\}\)\1
这分为两部分。第一个是\([A-Z]\{1,\}\)
匹配一个或者更多大写字母。第二部分与\1
前一组大写字母相匹配。这意味着必须重复大写字母模式(没有中间字符)才能匹配。这只匹配第一行,因为第一行有一个大写字母,L
后面跟着一个大写字母L
。这是唯一具有这种序列的线路。