使用 shell 将字节插入文件
Insert bytes into file using shell
我想使用 linux shell(bash、zsh 等)将一组已知字节插入文件的某个位置。 Similar questions 已被询问,但他们就地修改了文件的字节。这些问题不涉及在特定位置插入新字节。
例如,如果我的文件有一个像 \x32\x33\x35
这样的字节序列,我可能想在位置 2 插入 \x34
,这样文件中的这个字节序列就变成了 \x32\x33\x34\x35
。
您可以同时使用 head
、tail
和 printf
来实现此目的。例如;在 file
中的位置 2 插入 \x34
:
{ head -c 2 file; printf '\x34'; tail -c +3 file; } > new_file
对于 POSIX-compliance,可以使用 4
(\x34
的八进制表示)。
要就地进行此更改,只需将 new_file
移动到 file
。
无论您使用哪种工具,对于大文件,此操作都会花费大量 CPU 时间。
我想使用 linux shell(bash、zsh 等)将一组已知字节插入文件的某个位置。 Similar questions 已被询问,但他们就地修改了文件的字节。这些问题不涉及在特定位置插入新字节。
例如,如果我的文件有一个像 \x32\x33\x35
这样的字节序列,我可能想在位置 2 插入 \x34
,这样文件中的这个字节序列就变成了 \x32\x33\x34\x35
。
您可以同时使用 head
、tail
和 printf
来实现此目的。例如;在 file
中的位置 2 插入 \x34
:
{ head -c 2 file; printf '\x34'; tail -c +3 file; } > new_file
对于 POSIX-compliance,可以使用 4
(\x34
的八进制表示)。
要就地进行此更改,只需将 new_file
移动到 file
。
无论您使用哪种工具,对于大文件,此操作都会花费大量 CPU 时间。