2010-12-10 27 views
52

我正在寫一個bash腳本,需要獲取文件的頭(前10個字節),然後在另一個部分獲取除前10個字節以外的所有內容。這些是二進制文件,在前10個字節中可能有\0\n。看起來大多數實用程序都使用ASCII文件。什麼是實現這一任務的好方法?如何只獲得二進制文件的前十個字節

回答

84

爲了得到第10個字節,如前所述已:

head -c 10 

要獲得所有,但前10個字節(至少是GNU tail):

tail -c+11 
+2

是的。我喜歡'dd'的想法,但是這個選項不需要改變緩衝區大小,所以它可以很好地處理大文件。謝謝。 – User1 2010-12-10 17:07:43

26

head -c 10在這裏做正確的事情。

+3

有趣的是,這個答案是第一個,這是正確的,但其他人有更多的讚揚。 – robert 2016-08-29 13:49:54

28

您可以使用dd命令從二進制文件複製任意數量的字節。

dd if=infile of=outfile1 bs=10 count=1 
dd if=infile of=outfile2 bs=10 skip=1 
+1

這有效,但速度很慢。 10的bs正在殺死這些巨大的文件。有沒有更快的方法來跳過前10個字節?看起來很簡單。 – User1 2010-12-10 16:59:03

相關問題