2013-01-16 71 views

回答

41

您可以請求head讀取大量字節。爲了您的具體情況:

$ head -c 8 <file> 

或者在一個變量:

foo=$(head -c 8 <file>) 
1

你可以在bash中使用數組,只選擇第一個字符。高級Bash腳本指南有很好的例子說明如何使用數組。

+0

這真的只有一半的答案。你會如何選擇陣列中的前8個字符? – chepner

+1

echo $ {arrayZ [@]:1:2}#two three 它就在ABS中。 當然,這有點乏味。另一種方法是使用循環。 使用「head」的BTW解決方案不是僅使用bash builtins。 「頭」是一個外部程序。 – mrkafk

6

在bash

help read 

你會看到,你可以:

read -r -n 8 variable < .the/file 

如果您想讀第8個,獨立的分隔符,

IFS= read -r -n 8 variable < .the/file 

但避免使用

.... | while IFS= read -r -n 8 variable 

如,在bash,部分經過 「|」在一個子shell中運行:「變量」只會在該子shell中更改,並且在回到當前shell時會丟失新值。

+0

最後一個命令在下面的命令(這裏是'read')期間將'IFS'設置爲''''' –

+0

'bash'的第4版引入了'-N'選項,它作爲'-n '但也忽略了分隔符。 – chepner

+0

我在工作中使用bash 2.x ^^(但很好知道) –