質問: ファイルの先頭(headコマンド)、末尾(tailコマンド)からの読み出しコマンドは有るのですが ファイルの途中から数バイト読みだして変数に格納するコマンドがありませんか? 有るのか分かりません。 ファイルが大きい為、一度に変数に入れることができません。 良い方法ありませんでしょうか? よろしくお願い致します。
回答: 「tail -c +(バイト位置)」 で、指定したバイト位置以降を取り出すことが出来ます。 (「+」指定が位置の基準をファイル先頭からとする指定です。) 「head -c (バイト数)」 で指定したバイト数を先頭から取り出すことが出来ます。 これらを組み合わせてファイルの先頭10バイト目から5バイト取り出す例は次のようになります。 ``` $ cat test.bin 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $ DATA=`tail -c +10 test.bin | head -c 5` $ echo ${DATA} ABCDE ``` ※追記 質問の文中に「数バイト読みだして」という表現があったので上記はバイナリファイルというつもりで回答しtたが、テキストファイルの行指定でも考え方は同様です。 ``` $ cat test.txt 111 222 333 444 555 $ tail -n +2 test.txt | head -n 3 222 333 444 ```