前言
所谓“万物皆可编程”,这也包括前端工具的编写。不少开发者在工作中会使用到一些工具来简化流程或者提高效率。而 npm 是前端开发工具包管理的重要平台之一,在 npm 库中有很多优秀的工具包,今天我们就来介绍一个比较有用的工具包——miller。
miller 是什么
miller 是一个命令行工具,是一个用来处理文本文件的工具。它支持自定义一些简单的文本转化规则,支持 Python 和 awk 操作。更多关于 miller 的信息可以参考官方文档:https://github.com/johnkerl/miller
使用 miller
安装
安装 miller 可以通过 npm 来完成:
npm install -g miller
使用说明
命令行操作
使用 miller 可以通过以下的操作:
列出文件列表:
mlr --csv cat data_file.csv
做一些汇总:
mlr --csv stats2 -a min,mean,95,p10,p90,max -f volume,turnover data_file.csv
替换文本内容:
mlr cut -f 3,4 data_file.csv | mlr cut -o -f 4,3 | mlr put '$new=$4' data_file.csv
配置文件操作
miller 还支持通过配置文件进行操作,相关的用法如下:
创建一个配置文件:
mlr put -q 'if ($name =~ ".*food") {$include=1} else {$include=0}' my-masks
运行配置文件:
mlr --csv filter -f my-masks data_file.csv
实例
下面是一个示例,如何使用 miller 完成根据数据计算市场价格前 10 的股票名称。我们可以通过以下步骤来完成:
1. 通过计算出市盈率,并求出当前市盈率最大的前 10 个公司的名称
我们从一个 csv 文件,包含股票名称、市值、利润、市盈率信息,来展示如何使用 miller 实现这个需求。
我们首先通过以下命令,从 csv 文件中提取出市值和利润两列数据:
mlr --csv cut -f marketValue,profitable file.csv
接下来,我们计算市盈率,并根据市盈率排序:
mlr --csv put '$peRatio = ($profitable > 0) ? $marketValue/$profitable : 0' file.csv | mlr --csv sort -r -f peRatio
排序后,我们需要选取前 10 个公司,也可以通过以下代码来实现:
mlr -n --csv head -n 10 file.csv | mlr --csv cut -f name
可以看到,上述代码中,通过 mlr --csv head -n 10
选取了前 10 个公司,然后通过 mlr --csv cut -f name
选取其中的股票名称。
2. 通过配置文件实现
miller 还支持通过配置文件实现,即我们可以把上述的命令写在配置文件中,然后执行配置文件来完成任务。
我们创建一个配置文件 my-clause:
-- -------------------- ---- ------- ------- - ------------------------ -- - ---- -- --- -- --- - --------------- - - - -- --- - --- - --- --- - -- --------- - -- ------ -- -- - -- - - - - -
然后通过以下命令来执行:
mlr --csv filter -f my-clause file.csv | mlr --csv cut -f name
总结
通过本篇文章,我们了解了 miller 的基本使用方法,并且通过一个示例,展示了如何使用 miller 解决问题。miller 可以通过命令行或配置文件的方式使用,使用上还是比较方便的。是前端工具包中的一个不错的工具,值得我们一试。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f481d8e776d080410d2