파일 목록에서 날짜가 변경된 파일이 디렉토리에 존재하는지 확인하세요.

파일 목록에서 날짜가 변경된 파일이 디렉토리에 존재하는지 확인하세요.

그래서 다음과 같은 목록 파일이 있습니다.

SOURCE_FILE|SOURCE_SYSTEM|DELIVERY_FREQUENCY|IMPORT_DIRECTORY|PROCESSING_BLOCKS|DEPENDENT_DELIVERY_CODES|AFFECTED_TARGET_SYSTEMS

예:

SUBMIT_303_EXOTICIIBOND_YYYYMMDD_V01_T23.xml.gz|STF|DAILY|fromSTF|FLOWS|SMTMM|CFP;
YYYYMMDD_PES_TER_99_99.tar.gz|PALO|MONTHLY|fromPO|IRBDD|PES_TER|CFP

파일이 포함된 디렉터리:

SUBMIT_303_EXOTICIIBOND_20220720_V01_T23.xml.gz;
20220720_PES_TER_99_99.tar.gz).

목록에 있는 파일이 실제로 존재하는지 확인하고, 없으면 파일에 써야 합니다.

필요한 파일 이름을 정리하는 스크립트를 만들 수 있었기 cat file_path | grep "DAILY" | cut -d '|' -f1때문에 파일 이름만 사용했습니다.

!-f매일 바뀌는 날짜에 따라 출력을 구현하는 방법에 대한 제안 사항이 있습니까?

답변1

깊이 연구해 왔어요최근의:

gawk -F'|' '
  @load "filefuncs"
  $3 == "DAILY" {
    result = stat($1, statdata)
    if (result != 0)
      print $1
  }
' file.list > files.not.found

또는 한 줄로 표현하면 다음과 같습니다.

gawk -l filefuncs -F'|' '$3 == "DAILY" && stat($1, data) {print $1}' file.list > files.not.found

참조번호https://www.gnu.org/software/gawk/manual/html_node/Extension-Sample-File-Functions.html

관련 정보