打开具有特定名称模式的文件夹中的多个文件

打开具有特定名称模式的文件夹中的多个文件

我需要自动打开文件并分析其内容。

由于每个文件夹中都有具有不同命名模式的不同文件,我正在努力寻找打开它们的方法。

我只需要打开具有特定模式的文件: "error_YYYYMMDD_xyz.json" "xyz 是 0 到 999 之间的数字。

在我只需要搜索特定文件之前我就使用了这个算法:

for folder in `ls -d $path`
do

 for file in `ls $folder`
 do
 erreur=`jq ".tot_type" $folder/$file`  

 date=`echo $folder/$file | cut -d '_' -f2 | cut -c7-8 `

 if [ \( "$erreur" > 0 \) ]
 then
      j$date=`expr ${j$date} + 1`
 fi

 done
done 

我怎样才能做到这一点?

答案1

我不确定您到底想实现什么目标。

据我了解,你可以参考这个回答并尝试将第二个for循环替换为:

for file in `ls $folder | egrep 'error_[0-9]{8}_[0-9]{3}\.json'`

它将仅使用与模式对应的文件来过滤 ls 的输出:

error_[0-9]{8}_[0-9]{3}.json

您可以使用仅对应于以“20XX”开始的日期、“01”和“12”之间的月份以及“01”和“31”之间的日期的模式进行更精确的过滤,以限制更多过滤器。

相关内容