Miller 6 发布,数据文件的命令行工具
Miller 是一个命令行工具,用于查询、调整和重新格式化各种格式的数据文件,包括 CSV、TSV、JSON 和 JSON Lines。
用户体验
Miller 6 的功能主要由 2021 年 Miller 用户调查结果和 GitHub Issues 中的大量反馈来推动。
性能
在简单处理方面,性能与 Miller 5 相当,在复杂处理链方面,Miller 6 由于改进了多核利用率,因此性能远远优于 Miller 5,除此之外,CSV I/O 也有明显改善。
文档改进
文档和在线帮助(mlr --help
)已经被完全重写。
改进 Windows 体验
Miller 最初是为类 Unix 操作系统开发的,包括 Linux 和 macOS。Miller 5.2.0 成为了第一个支持 Windows 的版本。从 6.0.0 版本开始,Miller 直接在 Windows 上构建。
现在,Windows 上的体验与 Linux,NetBSD / FreeBSD和 macOS 上的体验几乎相同,MSYS2 不再是必需的 。
输出着色
每当输出到终端时,Miller 都会对键和值使用单独的可自定义颜色。
改进的命令行解析
Miller 6 具有 getoptish 命令行解析:
xyz
自动扩展为x -y -z
,例如mlr cut -of shape,flag
与mlr cut -o -f shape,flag
相同-foo=bar
会自动扩展为-foo bar
,因此(例如mlr --ifs=comma
与mlr --ifs comma
相同.
改进了 DSL 解析的错误消息
对于mlr put
和mlr filter
,解析错误消息现在包含位置信息:
mlr: cannot parse DSL expression. Parse error on token ">" at line 63 columnn 7.
脚本
脚本现在更容易支持带有sh
的#!
,以及现在支持带有mlr -s
的#!
。对于 Windows,也可以使用mlr -s
。这些变化有助于减少反斜杠引起的混乱,让用户在少打字的同时做更多的事情。
改进的国际化支持
现在可以用 UTF-8 编写字段名称、局部变量等,例如mlr --c2p filter '$σχήμα == "κύκλος"' παράδειγμα.csv
。
改进的日期时间/时区支持
包括支持通过函数参数指定时区,作为TZ
环境变量的替代方法。
对压缩输入的进程内支持
除了--prepipe gunzip
之外,在 Miller 6 中现在还可以使用--gzin
标志。如果你的文件以.gz
结尾,那你甚至无需这样操作,Miller 将通过文件扩展名自动检测并自动解压缩mlr --csv cat foo.csv.gz.z
支持读取网络网址
可以读取带有https://
和http://
和file://
前缀的输入:
mlr --csv sort -f shape \\ <https://raw.githubusercontent.com/johnkerl/miller/main/docs/src/gz-example.csv.gz>
改进 JSON / JSON Lines 支持和数组
数组现在在 Miller 的put
/filter
编程语言中受支持,此外array
现在是一个关键字,因此它不再可用作局部变量或 UDF 名称。
改进数值转换
Miller 6 最核心的部分是深度重构如何从文件内容解析数据值、如何推断类型以及如何将它们转换回文本到输出文件。
在 Miller 5 及更低版本中,所有值都存储为字符串,然后仅根据需要转换为 int/float。
在 Miller 6 中,可解析为 int/float 的东西从读取输入数据的那一刻起就被视为 int/float,并且它们通过动词链传递。
重复字段名称的重复数据删除
默认情况下,除 JSON / JSON Lines 之外的所有文件格式的字段名称都会被重复数据删除。
对 IFS 和 IPS 正则表达式支持
IFS
和IPS
可以是正则表达式:分别使用--ifs-regex
或--ips-regex
代替--ifs
或--ips
。还可以使用--ifs space --repifs
或--ifs-regex '()+'
。
大小写折叠排序选项
sort 现在接受-c
和-cr
选项,用于大小写折叠的升序/降序排序。
更多详情可查看:https://miller.readthedocs.io/en/latest/new-in-miller-6/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Tinker 1.9.14.19 发布,微信开源的 Android 热修复框架
Tinker v1.9.14.19 发布了。Tinker 是腾讯开源的 Android 热解决方案库,它支持在不重新安装 apk 的情况下对 dex、library 和 resources 进行更新。 更新内容: 修复了资源文件名中含有 % 时导致编译失败的问题。 修复了 OPPO、三星 Android S 机器上加载 patch 可能会导致 crash 的问题。 Secondary dex2oat 触发方式和使用的 compile-filter 综合了字节分享的文章、 OPPO、三星方面给出的建议进行了调整,调整后理论上能同时解决 Android R 的卡顿和 Android S 上的部分 crash 问题。 重新支持了 AGP 7.0 和 R8。 更新公告:https://github.com/Tencent/tinker/releases/tag/v1.9.14.19
- 下一篇
Netty 4.1.73.Final 发布
Netty 是一个异步事件驱动的网络应用框架,主要用于可维护的高性能协议服务器和客户端的快速开发。 Netty 4.1.73.Final 正式发布,因为这个版本修复了 Netty "核心部分" 的一些错误,因此官方强烈建议用户尽快升级。该版本具体更新内容如下: 使 PooledByteBufAllocator 的 "pinned memory" 反映出正在使用的缓冲区(#11990) 确保在 fin_wait2 状态下启用SO_LINGER和调用showdownOutput以启动 TCP 半关闭的一方仍能接收和处理处于 close_wait 状态的另一端发送的数据 (#11982) 配置缓存对齐时正确计算 elementSize (#11987) WebSocketServerProtocolHandshakeHandler 应该在没有聚合的情况下工作(#11976) 修复:如果没有触发 channelRead,则使 ByteToMessageDecoder 不调用 channelReadComplete 中的 read() 。(#11966) 添加基于锁的消息传递队列以帮助调试 Re...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址