0

我有一个带有数字的行列表。需要从中排除所有以373.

例如我的清单是:

37322433151
37323175491
19376717186
79684480273
97246000252
37323175491
37323175491
40745108277

如果我这样做cat ... | egrep '^[^373].*',那么它会排除从3or开始的行,7输出是

19376717186
97246000252
40745108277

即使表情是^[^(373)].*

仅当行以 . 开头时,我才需要排除373。谁能告诉我应该使用什么表达方式?

我也试过'^(?!373).*

4

2 回答 2

2

如果你想用正则表达式来做,那么你可以尝试:

^(37[^3]|3[^7]|[^3])[0-9]+$
于 2013-09-13T12:14:15.763 回答
1

使用grep -v

grep -v "^373" file

使用 awk:

awk '!/^373/' file

使用grep -P(PCRE):负前瞻

grep -P '^(?!373)' file
于 2013-09-13T12:09:11.957 回答