在HN上看到了一本书: Data science at the commandline,讲命令行下处理数据的方法,这个页面列出了书中用到的命令行工具。

这里面提到了一些工具,可以作为参考:

Linux下的基础工具

需要安装的一些工具

  • jupyter, 这个就是传统的python数据分析工具了,可以做数据可视化。
  • csvkit,这个csv处理的工具包里包含了很多命令行工具,可以用来处理csv文件,比如csvstat、csvlook、csvcut等等。
  • ripgrep, 可以替代grep,速度很快。
  • jq,这个工具可以用来处理json文件,比如可以用jq '.[] | select(.age > 30)' file.json来过滤出年龄大于30的数据。
  • clickhouse-local,这个工具可以用来处理clickhouse的数据,比如可以用clickhouse-local --query="SELECT toHour(time) h, count(*) t, bar(t, 0, 100, 25) as c FROM file(hackernews.csv, CSVWithNames) GROUP BY h ORDER BY h"来查询数据。这篇blog:https://clickhouse.com/blog/extracting-converting-querying-local-files-with-sql-clickhouse-local 介绍了如何用clickhouse-local来处理数据。
  • duckdb,这个工具可以用来处理parquet文件,比如可以用duckdb file.parquet来查询数据。

结论

如果你需要快速分析一些数据,可以考虑命令行工具的组合,但是假如你要做的分析需要写复杂的脚本,那么不要犹豫,直接用python吧,快速的写一个python脚本比你折腾awk要省事的多。