所以我有一个如下所示的列表文件:
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