You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将xxd或hexdump命令的输出保存到普通文件中?

终端直接保存输出的实现方法

完全可以直接通过终端原生操作完成需求,不需要额外开发,基于Shell的输出重定向能力即可实现,常用操作如下:

  • 覆盖写入文件:使用>重定向符,执行命令xxd image.jpg > hex_result.txt,执行后xxd的十六进制输出不会打印在终端,会直接覆盖写入hex_result.txt文件,内容和你在终端看到的完全一致。
  • 追加写入文件:如果需要保留目标文件原有内容,将新的输出追加到文件末尾,使用>>重定向符即可,命令为xxd image.jpg >> hex_result.txt。
  • 终端显示+同步存文件:如果需要在终端实时看到输出内容,同时把内容存到文件,用tee命令实现:xxd image.jpg | tee hex_result.txt;需要追加写入的话加-a参数:xxd image.jpg | tee -a hex_result.txt。
  • 保存包含报错的全量输出:如果需要把命令执行的错误信息(比如文件不存在、权限不足的提示)也一起存入文件,在重定向命令后加2>&1即可,示例:xxd image.jpg > hex_result.txt 2>&1。

小提示:如果不需要xxd默认输出的地址偏移列、右侧ASCII解析列,只需要纯十六进制内容供程序调用,可以加-p(plain)参数:xxd -p image.jpg > hex_result.txt,输出为连续的纯十六进制字符串,解析成本更低。如果要使用hexdump,逻辑完全一致,替换命令名即可。

程序中集成调用xxd/hexdump的方法

所有支持调用外部系统命令的编程语言,都可以直接集成调用这两个工具,一般有两种实现思路:一是直接调用命令+重定向写文件,后续程序读取文件内容即可;二是直接捕获命令的标准输出到内存,不需要生成临时文件。
以下是几种常见开发语言的最简实现示例:

  • Python 实现
import subprocess

# 直接捕获xxd输出到内存,无需落地临时文件
cmd_result = subprocess.run(
    ["xxd", "image.jpg"],
    capture_output=True,
    text=True
)
hex_content = cmd_result.stdout

# 按需写入文件
with open("hex_result.txt", "w", encoding="utf-8") as f:
    f.write(hex_content)
  • C/C++ 实现
#include <stdio.h>

int main() {
    // 打开xxd命令的输出管道
    FILE* cmd_fp = popen("xxd image.jpg", "r");
    if (cmd_fp == NULL) return -1;

    char buf[2048];
    FILE* out_fp = fopen("hex_result.txt", "w");
    // 逐行读取命令输出
    while (fgets(buf, sizeof(buf), cmd_fp)) {
        // 可直接在内存处理buf内容,这里示例写入文件
        fputs(buf, out_fp);
    }

    pclose(cmd_fp);
    fclose(out_fp);
    return 0;
}
  • Go 实现
package main

import (
	"os"
	"os/exec"
)

func main() {
	cmd := exec.Command("xxd", "image.jpg")
	// 直接绑定命令标准输出到文件对象,自动写入
	outFile, _ := os.Create("hex_result.txt")
	defer outFile.Close()
	cmd.Stdout = outFile
	cmd.Run()

	// 如需捕获输出到内存,直接调用cmd.Output()即可
	// hexBytes, _ := cmd.Output()
}

内容的提问来源于stack exchange,提问作者Thermal_insulator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:31:09