如何根据不同列中的字 符串grep数据? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有一个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组成的行分开。

任何建议和帮助将受到高度赞赏。

最好,

莱昂

bash grep
1个回答
0
投票
grep -P 'FRAME.*17110\W' aa.dat

简要说明,

  • -P:将PATTERN解释为Perl正则表达式
  • 附加的\W只允许非单词(即[^ a-zA-Z_])
© www.soinside.com 2019 - 2024. All rights reserved.