特定の名前パターンを持つフォルダから複数のファイルを開く

特定の名前パターンを持つフォルダから複数のファイルを開く

自動的にファイルを開き、内容を分析する必要があります。

フォルダごとに異なる名前パターンを持つさまざまなファイルがあるため、ファイルを開く方法を見つけるのが困難です。

特定のパターンのファイルを開くだけです。: "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

正確に何を達成したいのか分かりません。

私が理解している限り、これを参照できます。回答2番目のループを次に置き換えてください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」の間の日付のみに対応するパターンを使用して、より正確なフィルタリングでより多くのフィルタリングを制限できます。

おすすめ記事