Skip to content

【Zig 日报】项目分享:带有颜色区分的十六进制文件查看器 #322

@jiacai2050

Description

@jiacai2050

hexdump 用于打印文件或标准输入的彩色十六进制转储。

  • 按语义含义分类上色:空字符 (null)、空白符、控制字符、可打印 ASCII、非 ASCII。
  • Unicode 边框和分隔符(┌─┬─┐, ┊)。
  • 自动压缩:连续的相同行会折叠为一个 * 行。
  • 支持读取文件或标准输入
  • 智能配色:当输出目标不是终端(TTY)时自动禁用颜色。

配色方案

分类 字节范围 颜色
空字符 (Null) 0x00 亮黑色 (Bright Black)
ASCII 空白符 0x09 0x0A 0x0C 0x0D 0x20 绿色
ASCII 控制字符 0x01–0x08 0x0B 0x0E–0x1F 0x7F 绿色
可打印 ASCII 0x21–0x7E 青色 (Cyan)
非 ASCII 0x80–0xFF 黄色

演示

$ echo "Hello, World!" | hexdump --no-color
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 48 65 6c 6c 6f 2c 20 57 ┊ 6f 72 6c 64 21 0a       │Hello, W┊orld!_  │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
Image

下载方式

curl -fsSL https://zigcli.liujiacai.net/install.sh | sh -s -- --bins "hexdump"

选项

参数名 短指令 描述
--length -n 仅读取 N 个字节
--skip -s 从起始位置跳过 N 个字节
--color 何时使用颜色:always (总是), auto (自动), never (从不) (默认: auto)
--no-squeezing 打印所有行,不折叠重复行
--print-color-table 打印颜色对照表并退出
--version -v 打印版本信息
--help -h 打印帮助信息

示例

转储文件内容:

hexdump /bin/ls | head -20

查看前 64 个字节:
(注:此处可结合 -n 64)

跳过文件头并转储接下来的 128 字节:

hexdump -s 16 -n 128 file.bin

通过管道接收其他命令的输出:

curl -s https://example.com | hexdump | head -20

加入我们

Zig 中文社区是一个开放的组织,我们致力于推广 Zig 在中文群体中的使用,有多种方式可以参与进来:

  1. 供稿,分享自己使用 Zig 的心得
  2. 改进 ZigCC 组织下的开源项目
  3. 加入微信群Telegram 群组

Metadata

Metadata

Assignees

No one assigned

    Labels

    日报daily report

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions