파일 예고편에서 일련번호 확인

파일 예고편에서 일련번호 확인

매일 도착하는 파일이 있고 예고편에는 일련 번호가 있습니다.

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

관련 정보