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

如何使用grep正则表达式提取文本文件中第一个逗号前的唯一首词?

解决提取文本中第一个逗号前唯一首词的问题

你的问题核心是之前的命令没有精准提取目标片段,而是输出了整行,导致去重操作无法生效。下面给你几个简单高效的解决方案,完全适配你的文本格式:

方法1:用awk(最简洁直观)

awk是处理字段分割场景的利器,直接指定逗号为分隔符,提取第一个字段后排序去重:

awk -F ',' '{print $1}' file.txt | sort -u
  • -F ',':告诉awk用逗号作为字段分隔符
  • print $1:输出每行的第一个字段(也就是第一个逗号前的内容)
  • sort -u:排序并自动去除重复项

方法2:用grep配合-o参数提取匹配内容

你之前的grep命令缺少了-o参数(只输出匹配到的部分,而非整行),调整后就能精准提取:

grep -o '^*[^,]*' file.txt | sort -u
  • -o:仅输出正则匹配到的内容,而不是整行
  • ^*[^,]*:正则表示从行首的*开始,匹配所有不是逗号的字符,直到遇到第一个逗号为止,刚好就是你要的首词部分

方法3:用sed替换掉多余内容

sed可以直接把逗号及后面的所有内容清空,留下目标部分:

sed 's/,.*//' file.txt | sort -u
  • s/,.*//:替换命令,把每行中第一个逗号(包括逗号)后面的所有内容替换为空,剩下的就是第一个逗号前的内容

效果验证

针对你的示例文本,这三个命令都会输出:

*pattern1
*pattern2
*pattern_4

完全符合你提取唯一首词的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:52:43