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

Linux下超大CSV通话记录的行过滤方法求助

超大CSV文件行过滤解决方案

针对你已经提取出3列的filtered_CDR.CSV文件,以下是高效的行过滤方法:

推荐方案:使用awk精准匹配

awk是处理结构化文本的理想工具,能同时满足多列条件,还能保留表头:

# 保留表头 + 符合条件的数据行
awk 'NR==1 || ($2 ~ /^HG_[12]$/ && $3 == "slo.out")' filtered_CDR.CSV > final_filtered.CSV

命令细节说明

  • NR==1:保留第一行表头,不需要表头可直接删除这部分
  • $2 ~ /^HG_[12]$/:严格匹配第二列(ic_hg)为HG_1或HG_2,正则避免误匹配HG_10这类变体
  • $3 == "slo.out":精确匹配第三列(og_hg)为slo.out
  • &&:确保两个条件同时满足
  • 结果重定向到final_filtered.CSV,避免修改原文件

备选方案:使用grep(无需表头场景)

如果不需要保留表头,grep结合正则也能快速过滤:

grep -E "^[0-9]+[[:space:]]+HG_[12][[:space:]]+slo.out$" filtered_CDR.CSV > final_filtered.CSV
  • -E:启用扩展正则语法
  • ^[0-9]+:匹配开头的纯数字电话号码
  • [[:space:]]+:兼容列之间任意数量的空格分隔
  • HG_[12]:匹配目标HG值
  • slo.out$:确保行尾精确匹配目标输出值

适配逗号分隔的情况

如果你的实际数据是逗号分隔(之前cut命令用了-d,),需要给awk指定分隔符:

awk -F, 'NR==1 || ($2 ~ /^HG_[12]$/ && $3 == "slo.out")' filtered_CDR.CSV > final_filtered.CSV

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:30:32