我需要自动打开文件并分析其内容。
由于每个文件夹中都有具有不同命名模式的不同文件,因此我努力寻找一种方法来打开它们。
我只需要打开具有特定模式的文件:“ 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
我该如何进行这项工作?
我不确定您到底想达到什么目的。
据我了解,您可以参考此答案,并尝试将第二个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'之间的日期的模式进行更精确的过滤,以限制更多过滤器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句