Я хочу сопоставить шаблон только один раз, а затем перейти к следующему шаблону, даже если тот же шаблон снова совпадает.
Источник:
readMetaData(){
if grep -q $1 $MetaDataFile
then
echo $1" Matched with Metadata Pattern, so calling HDFSWriter.jar"
#java -jar HDFSWriter.jar $1
else
echo "ACK Filename not mactched with Metadata Pattern"
fi
}
cd $ACKPath
FileList="ls -t *.ack"
fileList=`$FileList`
for f in $fileList
do
FilePattern=`echo $f | cut -d '_' -f1-3`
echo $f
echo $FilePattern
readMetaData $FilePattern
done
Файлы, доступные в папке:
ABC_PRODUCT_REFERENCE_9_2019092630009562.ack
ABC_PRODUCT_REFERENCE_10_2019092630009986.ack
IJK_VIEW_COB_9_2019092630009562.ack
IJK_VIEW_COB_10_2019092630009986.ack
XYZ_VIEW_MONTH_9_2019092630009562.ack
XYZ_VIEW_MONTH_10_2019092630009986.ack
Шаблон для сопоставления, который доступен в файле .csv:
ABC_PRODUCT_REFERENCE_<ROWCOUNT>_<CHECKER>_<TIMESTAMP>.ack
IJK_VIEW_COB_<ROWCOUNT>_<CHECKER>_<TIMESTAMP>.ack
XYZ_VIEW_MONTH_<ROWCOUNT>_<CHECKER>_<TIMESTAMP>.ack
Как только шаблон 'ABC_PRODUCT_REFERENCE' совпадает, я не хочу использовать тот жеобразец снова. Я хочу перейти к следующему шаблону 'IJK_VIEW_COB', как только это совпадет, затем я хочу перейти к 'XYZ_VIEW_MONTH' Даже если файлы соответствуют 2 раза для каждого шаблона.
Я сделал, чтобы соответствовать шаблону, но этовсе еще идет по тому же шаблону снова, так как есть еще один файл с таким же шаблоном.
Мой текущий вывод:
ABC_PRODUCT_REFERENCE_10_1514120_2019092630009986.ack
ABC_PRODUCT_REFERENCE Matched with Metadata Pattern
ABC_PRODUCT_REFERENCE_9_1514120_2019092630009562.ack
ABC_PRODUCT_REFERENCE
ABC_PRODUCT_REFERENCE Matched with Metadata Pattern