Bash
在具有特定名稱模式的文件夾中打開多個文件
我需要自動打開文件並分析其內容。
由於每個文件夾中都有具有不同命名模式的不同文件,我正在努力尋找一種打開它們的方法。
我只需要打開具有特定模式的文件:“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”之間的日期對應的模式進行更精確的過濾,以限制更多的過濾器。