You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用grep或正则从大文件中提取唯一的特定格式ID?

用grep+正则提取并去重目标唯一ID

嘿,作为新手,处理这种从大文件里提取特定ID的需求,用grep搭配正则再加上几个小工具就能轻松搞定。咱们结合你的示例文件和需求来一步步操作:

第一步:匹配目标ID模式

首先看你要的ID:ABCD-1103来自ABCD-1103_01,ABCD-110来自ABCD_110_01,它们的共同模式是以ABCD开头,后面跟连字符或下划线,再跟着一串数字,而且我们只需要到第一个下划线/连字符之后的数字部分(也就是去掉后面的_01这类后缀)。

用grep的-o选项可以只输出匹配到的内容,而不是整行,对应的命令是:

# 支持PCRE的grep(比如GNU grep)
grep -o 'ABCD[-_]\d\+' your_large_file.txt

如果你的grep不支持\d(比如POSIX标准的grep),换成[0-9]就行:

grep -o 'ABCD[-_][0-9]\+' your_large_file.txt

这时候输出会是:

ABCD-1103
ABCD_110

第二步:统一ID格式

你需要的ID都是用连字符分隔的,所以我们用sed把下划线替换成连字符:

grep -o 'ABCD[-_]\d\+' your_large_file.txt | sed 's/_/-/'

现在输出就变成了:

ABCD-1103
ABCD-110

第三步:去重得到唯一ID

如果大文件里有重复的ID,最后用sort+uniq来去除重复项,得到唯一的结果:

grep -o 'ABCD[-_]\d\+' your_large_file.txt | sed 's/_/-/' | sort | uniq

这样就能得到你需要的唯一ID列表啦!

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:40:11