我想使用linux shell(bash,zsh等)在文件的某个位置插入一组已知字节。已询问Similar questions,但它们就地修改了文件的字节。这些问题不能解决在特定位置插入新字节的问题。
例如,如果我的文件具有\x32\x33\x35
之类的字节序列,我可能希望在位置2插入\x34
,以便文件中的此字节序列成为\x32\x33\x34\x35
。
答案 0 :(得分:1)
您可以同时使用head
,tail
和printf
来实现此目的。例如;将\x34
插入file
中的位置2:
{ head -c 2 file; printf '\x34'; tail -c +3 file; } > new_file
对于POSIX兼容,可以使用\064
(\x34
的八进制表示形式)。
要就地进行此更改,只需将new_file
移至file
。
无论使用哪种工具,此操作都会花费大量CPU时间来处理大文件。