这个问题在这里已有答案:
我有一个aa.dat,其数据如下,
frame 1 16980 O 17115H 17123H
FRAME 1 16980 O 16971H 16981H
frame 1 16982 O 17110H 17121H
FRAME 1 16982 O 16961H 16978H
frame 1 16984 O 17124H 17127H
FRAME 1 16984 O 16983H 16990H
frame 1 17110 O 17102H 17225H
FRAME 1 17110 O 16951H 17138H
FRAME 2 16982 O 16961H 16978H
frame 2 16984 O 17124H 17127H
FRAME 2 16984 O 16983H 16990H
frame 2 17110 O 17102H 17225H
FRAME 2 17110 O 16951H 17138H
...
frame 3 16984 O 17124H 17127H
FRAME 3 16984 O 16983H 16990H
frame 3 17110 O 17102H 17225H
FRAME 3 17110 O 16951H 17138H
frame 4 16980 O 17115H 17123H
FRAME 4 16980 O 16971H 16981H
frame 4 16982 O 17110H 17121H
FRAME 4 16982 O 16961H 16978H
frame 4 17110 Ac 17102H 17225H
FRAME 4 17110 Ac 16952H 17118H
...
我想在第3列中获得“FRAME”和“17110”的数据。
FRAME 1 17110 O 16951H 17138H
FRAME 2 17110 O 16951H 17138H
FRAME 3 17110 O 16951H 17138H
FRAME 4 17110 Ac 16952H 17118H
...
但是,我的代码
grep -E 'FRAME.*17110' aa.dat
无法将数据与17110H组成的行分开。
任何建议和帮助将受到高度赞赏。
最好,
莱昂
grep -P 'FRAME.*17110\W' aa.dat
简要说明,
-P
:将PATTERN解释为Perl正则表达式\W
只允许非单词(即[^ a-zA-Z_])