Bash 只匹配一次模式,然后继续下一个模式,即使同一个模式在shell脚本中再次匹配
我只想匹配一次模式,然后继续下一个模式,即使相同的模式再次匹配 资料来源:Bash 只匹配一次模式,然后继续下一个模式,即使同一个模式在shell脚本中再次匹配,bash,shell,Bash,Shell,我只想匹配一次模式,然后继续下一个模式,即使相同的模式再次匹配 资料来源: 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 mac
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
grep有一个-m标志来指定匹配的数量。这些模式是在文件的同一行上,还是在不同的记录中?如果它们位于不同的以下紧密连接的记录中,我将使用
grep-m1-A50…
捕获下一个(例如)50行,然后为其他标记grep该输出。
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