为什么不将 base16 添加到 coreutils 中?

Why not add a base16 into coreutils?

base32 和 base64 CLI 实用程序都是 gnu coreutils 的一部分。那么,为什么不添加一个 base16 呢?

GNU coreutils 是免费的。人们非常、非常努力地工作,却没有付出任何代价。您完全免费使用它。你捐了多少钱?捐出它们。如果你想要什么就付钱给他们。

Why not add a base16 into coreutils?

它需要工作,包括实施,但主要是永无止境的维护。如果不需要某些东西,最好不要添加它并减少工作并专注于重要的事情。维护当前命令,使它们与所有系统保持同步并保持一致和正常工作,这一点更为重要。有些人甚至说,(尤其是在开源项目中)项目负责人最重要的是决定拒绝哪些功能,而不是添加哪些功能。

那么,在 GNU coreutils 中实现 然后无休止地维护 base16 实用程序,您要支付多少钱?

在我看来,这是因为十六进制编码使被编码的数据量加倍。这种方法被认为是不合适的。
P.S. Here 是提供 base16 编码的控制台工具的 C# 示例。应用程序输入可以从文件、命令行、键盘或根据所谓的“Unix 方式”软件通过重定向来自另一个控制台应用程序的输出来获得。不幸的是,它使用 Windows API 但可以重新设计为 Linux。

写剧本和同样的想法...

刚刚查看了 coreutils 中的新闻。 https://github.com/coreutils/coreutils/blob/master/NEWS

他们似乎在 8.31 版 (2019-03-10) 中添加了 basenc

** New commands - basenc is added to complement existing base64,base32 commands, and encodes and decodes printable text using various common encodings: base64,base64url,base32,base32hex,base16,base2,z85.

有一个命令是有意义的...我过去用其他方法做过 xxd、hexdump 等...

所以他们有点做了。只需使用 basenc --base16

*编辑,实际上这三个都是相同的源代码 https://github.com/coreutils/coreutils/blob/master/src/local.mk

src_base64_SOURCES = src/basenc.c
src_base64_CPPFLAGS = -DBASE_TYPE=64 $(AM_CPPFLAGS)
src_base32_SOURCES = src/basenc.c
src_base32_CPPFLAGS = -DBASE_TYPE=32 $(AM_CPPFLAGS)
src_basenc_SOURCES = src/basenc.c
src_basenc_CPPFLAGS = -DBASE_TYPE=42 $(AM_CPPFLAGS)