ファイルトレーラーでシリアル番号を確認する

ファイルトレーラーでシリアル番号を確認する

毎日届くファイルがあり、トレーラーにはシリアル番号があります。

9999  TR  SAP _AP Distribution  0000000000000001

シリアル番号はどこにあり、0000000000000001翌日の文書0000000000000002などは何ですか?入力ファイルのシリアル番号を確認し、シリアル番号が重複しているか、予想されるシリアル番号と一致しない場合は、ファイルを拒否する必要があります。確認を実行するにはスクリプトが必要です。

EFEGECC_Timestamp.txt、例EFEGECC_20150704.txt:などのファイル名私たちは一年中毎日文書を受け取ります。

ベストアンサー1

最初からすべての文書を検証する必要があるとしましょう。

#!/bin/bash

seqno=1
for i; do
        if tail -1 $i | grep -q $(printf "%016d\$" $seqno); then
                echo "  valid: $i"
                seqno=$((seqno+1))
        else
                echo "invalid: $i"
        fi
done

入力する:

$ grep . EFEGECC*
EFEGECC_20150101.txt:9999  TR  SAP _AP Distribution  0000000000000001
EFEGECC_20150102.txt:9999  TR  SAP _AP Distribution  0000000000000002
EFEGECC_20150103.txt:9999  TR  SAP _AP Distribution  0000000000000002
EFEGECC_20150104.txt:9999  TR  SAP _AP Distribution  0000000000000009
EFEGECC_20150105.txt:9999  TR  SAP _AP Distribution  0000000000000003

出力:

$ ./script.sh EFEGECC*
  valid: EFEGECC_20150101.txt
  valid: EFEGECC_20150102.txt
invalid: EFEGECC_20150103.txt
invalid: EFEGECC_20150104.txt
  valid: EFEGECC_20150105.txt

おすすめ記事