我有一个大文件,几个二进制数据,顶部有一个ASCII标头。我需要对ASCII标头进行一些小的更改。 sed
完成这项工作,但由于文件太大,需要花费相当多的时间。 vi/vim
也很慢。是否有任何Linux实用程序可以直接进入文件,在顶部进行更改,然后快速退出?
示例可能是标题,如下所示:
Code Rev: 3.5
Platform: platform1
Run Date: 12/13/16
Data source: whatever
Restart: False
followed by a large amount of binary data ....
然后我可能需要编辑“数据源”中的错误。
答案 0 :(得分:3)
如果您知道标头小于X字节,则可以使用dd。 (!)但它只有在两个字符串具有相同的长度(!)
时才有效让我们说,标题少于4096字节
dd if=/path/to/file bs=4096 count=1 | sed 's/XXX/YYY/' | dd of=/path/to/file conv=notrunc
您也可以使用C,Python,PHP,JAVA等语言以编程方式执行此操作。想法是打开文件,读取标题,修复它,然后将其写回。