使用Shell将字节插入文件

时间:2019-04-24 01:18:43

标签: shell binary printf byte dd

我想使用linux shell(bash,zsh等)在文件的某个位置插入一组已知字节。已询问Similar questions,但它们就地修改了文件的字节。这些问题不能解决在特定位置插入新字节的问题。

例如,如果我的文件具有\x32\x33\x35之类的字节序列,我可能希望在位置2插入\x34,以便文件中的此字节序列成为\x32\x33\x34\x35

1 个答案:

答案 0 :(得分:1)

您可以同时使用headtailprintf来实现此目的。例如;将\x34插入file中的位置2:

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

对于POSIX兼容,可以使用\064\x34的八进制表示形式)。

要就地进行此更改,只需将new_file移至file


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