最後の行を読み、数値に変換

最後の行を読み、数値に変換

タイトル、トレーラー、詳細を含むテキストファイルがあります。

フォーマット:

H20161010XXX                        // record length: 880  
D<---details----total length 880--->
D<---details----total length 880--->
T2016101020161010          00004    // record length : 880  

「00004」を解析し、これに対していくつかの計算を実行したいと思います。

トレーラーレコードを読みましたが、00004を解析できません。

trailer=`tac $FILE | grep -m 1 '.'`
echo $trailer 
count=$(trailer:29:5)
echo $count

出力:

T2016101020161010          00004

00004を選択できません。

00004の開始位置と長さは固定されているため、ハードコードできます。また、変数に保存して算術演算を実行したいと思います。

kshを使ってシェルスクリプトを書いています。とても感謝しています!

答え1

$trailerを取得した後:

count=$(echo $trailer | cut -d' ' -f2)
echo $count

答え2

部分文字列を取得するには、中かっこを使用します。

count=${trailer:29:5}

「${trailer:27:5}」を使用してコピー/貼り付けした例がより正確に見えます。

関連情報