Abordagem mais simples (mostrada com uma verificação da data atual ):
for f in [0-9][0-9][0-9][0-9]_ls2_???.dat; do
sed '1d;2q' "$f" | grep -q "^$(date +%Y%m%d)" &&
load into database "$f"
done
(resposta original)
Uma abordagem possível:
find /path/to/ingest/directory -type f -name '????_ls2_???.dat' \
-exec awk -v prev_bus_day="$(command that prints previous business day as yyyymmdd)" \
-v default_exit=1 '
NR == 2 {
if ($1 == prev_bus_day) {
default_exit = 0
}
exit
}
END {
exit default_exit
}
' {} \; -exec command to load multiple files into database {} +
Para ler mais sobre o uso de find
com outros comandos, consulte: