그래서 다음과 같은 목록 파일이 있습니다.
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