在HN上看到了一本书: Data science at the commandline,讲命令行下处理数据的方法,这个页面列出了书中用到的命令行工具。
这里面提到了一些工具,可以作为参考:
Linux下的基础工具 awk sed grep sort uniq cut paste join wc head tail tr 需要安装的一些工具 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要省事的多。
...