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

如何计算两文件中条目精确重复次数后的剩余差异?

按条目出现次数差生成结果文件

grep -v -f的问题在于它会直接排除所有在参考文件里的条目,完全不考虑出现次数,所以没法满足你的需求。用awk可以轻松实现按次数差保留条目:

脚本实现

创建一个awk脚本(比如count_diff.awk):

# 统计File2中每个条目的出现次数
NR==FNR { cnt[$0]++; next }
# 遍历File1,每遇到一个条目就将对应计数减1,计数为负时输出该条目
{ if (--cnt[$0] < 0) print $0 }

执行命令

awk -f count_diff.awk File2.txt File1.txt > Finalfile.txt

原理说明

  1. 先读取File2.txt,用数组cnt记录每个条目的出现次数
  2. 再读取File1.txt,每处理一个条目就把对应cnt值减1:
    • 如果减完后cnt仍≥0,说明这个条目在File1里的次数还没超过File2,不输出
    • 如果减完后cnt<0,说明这是File1比File2多出来的条目,直接输出

示例验证

假设:
File1.txt:

Data3
Data3
Data3
Data3
Data1
Data2

File2.txt:

Data3
Data3
Data1

执行后Finalfile.txt内容:

Data3
Data3
Data2

完全匹配你要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:13