首页 > 解决方案 > GREP 或 Regex 搜索具有特定系列的唯一字符

问题描述

我是新手,我想使用具有唯一 ID 列表的 grep 或正则表达式搜索一个巨大的文件。

示例文件:

/icon_edit.png\" \/><\/a> AP-28992 : ABCD-1103_01 [v1]","2","2012-10-27 18:40:47","2012-01-04 13:22:41"],
["shawn","extra\/fax","<!-- 0000000000 --><a href=\"javascript:openTCEditWindow(0000,000);\"><img title=\"
TSD\" src=\"gui\/themes\/default\/images\/icon_edit.png\" \/><\/a> AP-28993 : ABCD-1103_02
[v1]","2","2012-10-27 18:40:47","2012-01-04 13:22:41"],
["shawn","extra\/traax","<!-- 0000000000 --> ABCD_110_01

应在下面唯一过滤,例如:

ABCD-1103
ABCD-110

标签: linuxunix

解决方案


我猜ABCD-110是你的输入模式和空格是分隔符

所以如果你的输入文件即。abc.txt 就像(我修改了最后一行)

$cat abc.txt 
/icon_edit.png\" \/><\/a> AP-28992 : ABCD-1103_01 [v1]","2","2012-10-27
18:40:47","2012-01-04 13:22:41"],
["shawn","extra\/fax","<!-- 0000000000 --><a
href=\"javascript:openTCEditWindow(0000,000);\"><img title=\"
TSD\" src=\"gui\/themes\/default\/images\/icon_edit.png\" \/><\/a> AP-28993 :
ABCD-1103_02
[v1]","2","2012-10-27 18:40:47","2012-01-04 13:22:41"],
["shawn","extra\/traax","<!-- 0000000000 --> ABCD-110_01

然后以下工作:

$cat abc.txt  | grep -ow "ABCD-110.*" | awk '{print $1}'
ABCD-1103_01
ABCD-1103_02
ABCD-110_01

推荐阅读