Atualmente, estou construindo um script que analisa os arquivos json e faz algumas operações ao analisá-lo.
Aqui está o começo do meu script:
for folder in 'ls -d $path'
do
mag='basename $folder'
for file in 'ls $folder' # pour chaque fichier présent dans le dossier spécifé
do
receivedCustomer='jq ".receivedCustomer" $folder/$file'
invoiceCustomer='jq ".invoiceCustomer" $folder/$file'
anotherCustomer='jq ".anotherCustomer" $folder/$file'
etc...'
if [ \( "$view" == "\"healthCheck\"" \) ]
then
healthCheckCpt='expr $healthCheckCpt + 1'
fi
if [ \( "$terminal" == "\"01\"" \) ]
then
terminal01='expr $terminal01 + 1'
fi
Etc ...
Em seguida, algumas operações são um pouco mais "complexas":
if [ "$sameClientFacture" -gt 0 ]
then
sameClient='echo $sameClientFacture $anotherCustomerTrue $rattachementClientBorne $factureSansClientRattache | awk '{printf"%.2f",$1/($2+$1+$3+$4)*100}''
# echo sameClient : $sameClient
fi
if [ "$anotherCustomerTrue" -gt 0 ]
then
differentClient='echo $sameClientFacture $anotherCustomerTrue $rattachementClientBorne $factureSansClientRattache | awk '{printf"%.2f",$2/($2+$1+$3+$4)*100}''
# echo differentClient : $differentClient
fi
Por fim, apenas construo outro arquivo JSON contendo os resultados das operações com um "echo":
echo "{" "x :" value ", y :" value etc... "}" > out_file
Eu certamente estou fazendo algo errado, já que sou muito novo em programação shell.
Eu estou analisando cerca de 30.000 arquivos em um tempo de poucos KB cada (de 50 a 150 linhas por arquivo), a última tentativa demorou 2070 segundos, comparado a uma análise Java. Acho muito lento ..
Vocês têm uma pista sobre como posso melhorar meu roteiro?
Tags performance json scripting jq