shell - 使用 shell 将字节插入文件

标签 shell binary printf byte dd

我想使用 Linux shell(bash、zsh 等)将一组已知字节插入到文件的某个位置。 Similar questions已被要求,但他们就地修改文件的字节。这些问题不涉及在特定位置插入新字节。

例如,如果我的文件具有类似于 \x32\x33\x35 的字节序列,我可能希望在位置 2 处插入 \x34 ,以便该字节序列文件中的内容变为 \x32\x33\x34\x35

最佳答案

您可以结合使用 headtailprintf 来实现此目的。例如;在文件中的位置2处插入\x34:

{ head -c 2 file; printf '\x34'; tail -c +3 file; } > new_file

为了符合 POSIX 标准,可以使用 \064(\x34 的八进制表示形式)。

要就地进行此更改,只需将 new_file 移动到 file 即可。


无论您使用哪种工具,此操作对于大文件都会花费大量 CPU 时间。

关于shell - 使用 shell 将字节插入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55821106/

相关文章:

linux - 自动运行多个 compass-sass watch 操作

sql - 如何 SQL 使用 VBScript(或 VB6)从字节/整数数组插入原始/二进制字段值?

c - 在 C 上编写和显示具有格式的流

python - 使用 shell=True 参数运行 python 子进程

linux - 使用 ls 列出子目录

c - unsigned char c = 255 是 "11111111"还是不是?

ios - 如何在 Xcode 管理器中访问设备日志(不是崩溃报告)

c - 从文件读取后打印链表的段错误

Linux watch 命令 "no such file or directory"

c# - 二进制到十进制的转换 - 公式?