Bash

在具有特定名稱模式的文件夾中打開多個文件

  • May 11, 2017

我需要自動打開文件並分析其內容。

由於每個文件夾中都有具有不同命名模式的不同文件,我正在努力尋找一種打開它們的方法。

我只需要打開具有特定模式的文件:“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”之間的日期對應的模式進行更精確的過濾,以限制更多的過濾器。

引用自:https://unix.stackexchange.com/questions/364411