2 个不稳定版本

0.2.0 2023年5月31日
0.1.0 2023年5月31日

#1703命令行工具

每月25次下载

MIT 许可证

29KB
756

d 代表 datad-rs 是 grep、awk、sed 以及其他 Unix 工具功能的组合,以便轻松编辑管道数据。

使用方法

假设存在一个文件,内容如下:

# Hours

x: 3 hours
y: 3.5 hours
z: 15 hours
w: 1.5 hours

您可以使用 d 来查找总共有多少小时:

cat hours.txt | d f float | d r sum

返回 23。

这里发生了什么?

d 有 4 个主要子命令

  • filter(或 find,对于 d 来说,这两个操作几乎是相同的)
  • map
  • reduce
  • split

每个命令都可以缩写(分别为 fmrs)。

那么示例中发生了什么?首先我们使用 find 找到所有的浮点数,然后使用 reduce 和 sum 操作符来汇总。

通常,您可以

  • 使用自定义或内置的正则表达式来查找内容
  • 使用自定义或内置的正则表达式、Python 表达式(可能还会添加更多)来映射内容
  • 使用求和、乘积或连接操作符来汇总内容(可能还会添加更多)
  • 基于单个字符或单词来拆分内容(目前尚不支持正则表达式)

Python 映射

使用 d m p(d map python)告诉 d 对输入的每一行运行一行 Python 代码。您的代码将在以下环境中运行:

  • 有一个 iinp 变量,其中包含当前行
  • 有一个 oout 变量,写入的内容将成为表达式的结果(使用 __repr__ 将其转换为字符串)
  • 或者,您可以打印表达式的结果。如果您这样做,则忽略 o/out 中的值,以防止表达式产生多个输出。

映射行之间不保留状态。

待办事项列表

  • 更多内置正则表达式
  • 查找常用单位(例如,格式为 500KiB 的磁盘大小)并自动转换为基本单位(500Kib --> 512000
  • 内置 n 到 m 的基数转换

依赖关系

~5–6.5MB
~115K SLoC