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

如何使用Shell脚本删除输出中第二列重复值对应的行

两列内容按第二列去重Shell实现方案

实现命令

直接使用awk单行命令即可完成需求,支持直接处理文件或者管道输入:

# 处理本地文件
awk '!seen[$2]++' your_file.txt

# 处理管道输入场景(前序命令的输出可直接接该命令去重)
cat your_file.txt | awk '!seen[$2]++'

命令说明

  • 核心利用awk的关联数组特性:seen是自定义数组,以第二列$2作为数组的键
  • 首次遇到某第二列值时,seen[$2]默认值为0,!seen[$2]判断结果为真,当前行直接输出,随后seen[$2]自增为1
  • 后续再遇到相同的第二列值时,seen[$2]已经≥1,!seen[$2]判断结果为假,当前行不会被输出,最终仅保留第二列值首次出现的行

适配特殊分隔符场景

如果内容不是默认空白分隔(比如逗号分隔的CSV文件),可通过-F参数指定分隔符:

# 适配逗号分隔文件
awk -F ',' '!seen[$2]++' your_csv_file.csv

效果验证

针对示例输入运行上述命令后,输出完全符合预期:

1    Sample1
1    Sample2
1    Sample3
3    Sample4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:24:02