Abrir vários arquivos em pastas com padrão de nome específico

1

Eu preciso abrir arquivos automaticamente e analisar o conteúdo deles.

Estou lutando para encontrar uma maneira de abri-los devido ao fato de que em cada pasta há arquivos diferentes com padrões de nomenclatura diferentes.

Eu só preciso abrir arquivos com um padrão específico : "error_YYYYMMDD_xyz.json" "xyz sendo um número de 0 a 999.

Eu estava usando esse algoritmo antes de precisar pesquisar apenas arquivos específicos:

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 

Como posso fazer isso funcionar?

    
por Matieu 11.05.2017 / 14:45

1 resposta

2

Não tenho certeza de entender exatamente o que você tenta alcançar.

Pelo que entendi, você pode consultar esta resposta e tentar substituir seu segundo loop for por:

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

Ele filtrará a saída do seu ls com apenas arquivos correspondentes ao padrão:

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

Você pode filtrar com mais precisão com um padrão que corresponde apenas às datas iniciadas por '20XX', mês entre '01' e '12' e dia entre '01' e '31' para restringir mais o filtro.

    
por 11.05.2017 / 15:52