Linux シェル,ファイルの終端から、指定したバイト数を取得

スポンサーリンク

鍛錬 162

Linux シェルスクリプト,ファイルの終端から、指定したバイト数のデータを取得する

ファイルの終端から指定したバイト数のデータを取得するには、tail にオプションの -c を付加して使用します。
 
使用方法は、以下の通りです。

tail -c 取得するバイト数 ファイル名

 
シェルスクリプト

以下は、サンプルファイル sample.txt の終端から、指定したバイト数を取得するシェルスクリプト get_end_byte.sh です。

#!/bin/sh

FILENAME="/var/tmp/sample.txt"

echo "---------- 終端から 3 byte 取得 ----------"
tmp=$(tail -c 3 $FILENAME)
echo "$tmp"
echo ""

echo "---------- 終端から 7 byte 取得 ----------"
tmp=$(tail -c 7 $FILENAME)
echo "$tmp"
echo ""

echo "---------- 終端から 12 byte 取得 ----------"
tmp=$(tail -c 12 $FILENAME)
echo "$tmp"
echo ""

 
サンプルファイル

以下は、上記のシェルスクリプト get_end_byte.sh が読み込むサンプルファイル sample.txt です。

ABCDEFGHI
123456789

 
実行結果

以下は、上記のシェルスクリプト get_end_byte.sh の実行結果です。
ファイルの終端から 12 byte 読み込む場合、1 行目の I の後に存在する改行コードも含むため、終端からの 12 byte 目は H となります。

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./get_end_byte.sh
---------- 終端から 3 byte 取得 ----------
789

---------- 終端から 7 byte 取得 ----------
3456789

---------- 終端から 12 byte 取得 ----------
HI
123456789
タイトルとURLをコピーしました