Linux 下 CSV 文件怎么快速查看和过滤?

2次阅读

推荐使用csvkit、mlr或awk/cut处理CSV:csvkit适合快速查看筛选,mlr适合复杂分析如计算和聚合,awk/cut作为无依赖兜底方案。

Linux 下 CSV 文件怎么快速查看和过滤?

linux 下查看和过滤 CSV 文件,不用打开 excel 或写脚本,用命令行就能又快又准。

csvkit 看得清、筛得准

csvkit 是专为 CSV 设计的命令行工具集,安装后能自动识别分隔符、处理引号、跳过空行,比原生 awk/sed 更靠谱。

  • 装它:pip install csvkit(推荐用用户级安装:pip install –user csvkit
  • 看前 5 行:csvlook -n 5 data.csv(带行号、对齐整齐,适合扫一眼结构)
  • 查某列含关键词的行:csvgrep -c “name” -m “Alice” data.csv(-c 指定列名,-m 匹配文本)
  • 按数值列排序:csvsort -c “age” –reverse data.csv(支持多列、升/降序、数字识别)

没装 csvkit?用 awk + cut 快速应急

系统自带工具也能干,但要注意 CSV 有逗号在字段里(比如 “Smith, Jr.”,25)时,cut 会切错。简单干净的 CSV 可以直接上。

Linux 下 CSV 文件怎么快速查看和过滤?

ChatDOC

ChatDOC是一款基于chatgpt的文件阅读助手,可以快速从pdf中提取、定位和总结信息

Linux 下 CSV 文件怎么快速查看和过滤? 262

查看详情 Linux 下 CSV 文件怎么快速查看和过滤?

  • 只看第 1、3 列:cut -d’,’ -f1,3 data.csv | head -10
  • 筛选第 2 列等于 100 的行:awk -F’,’ ‘$2 == 100 {print}’ data.csv
  • 打印第 4 列大于 50 且第 1 列不为空:awk -F’,’ ‘$4 > 50 && $1 != “” {print}’ data.csv

带表头的 CSV,用 mlr(Miller) 更顺手

mlr 把 CSV 当成“带字段名的数据库”来操作,语法接近 sql,支持类型推断、计算列、分组聚合,适合稍复杂的分析。

  • 装它:sudo apt install millerubuntu/debian)或 brew install millermacOS)
  • 查年龄 > 30 的人,只显示 name 和 city:mlr –csv filter ‘$age > 30’ then cut -f name,city data.csv
  • 统计每种 status 出现次数:mlr –csv stats1 -a count -g status data.csv
  • 加一列“is_adult”:mlr –csv put ‘$is_adult = $age >= 18 ? “yes” : “no”‘ data.csv

基本上就这些。csvkit 适合日常快速查筛,mlr 适合要算点东西的场景,纯 awk/cut 是兜底方案。选一个装上,比打开 Libreoffice 快十倍。

text=ZqhQzanResources