Optimiser / remplacer une commande awk

Résolu/Fermé
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - Modifié le 14 avril 2023 à 13:59
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 3 mai 2023 à 13:50

Bonjour,

Je dois rechercher une chaîne de caractère (un nom de serveur) dans un fichier FICHIER1 de 42 000 lignes 

Pour chaque ligne du FICHIER1 :

awk -F';' 'BEGIN { IGNORECASE = 1 } $1 ~ /'$SERVEUR'/ {print $0}'  FICHIER1  >  FICHIER.TMP

Une fois trouvé les lignes que je mets dans un fichier TMP,  je somme les valeurs de la 5eme colonne de ces lignes. 

awk -F";" '{total += $5} END{print total;}'  FICHIER.TMP

... puis je traite d'autres DATA  de ce serveur  qui sont dans un second fichier FICHIER2 de 100 000 lignes. 

VAR2=$(awk -F";" '{total += $7 } END{print total;}'  FICHIER2
VAR3=$(awk -F";" '{total += $8 } END{print total;}'  FICHIER2

Je vous passe le formatage du résultat mais c'est très long (à peu près 1 seconde)  par serveur et j'ai 24 000 serveurs. 

Une idée pour optimiser ? Merci ! 

;-)

A voir également:

3 réponses

dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 5 615
Modifié le 14 avril 2023 à 14:01

hello

on peut regrouper

awk -F';' -v s="$SERVEUR" 'BEGIN {IGNORECASE=1} $1 ~ s {total += $5} END{print total;}' FICHIER1 > FICHIER.TMP

et

read VAR2 VAR3 < <(awk -F";" '{t7+=$7; t8+=$8 } END{print t7, t8}'  FICHIER2)
2
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024
20 avril 2023 à 08:19

C'est plus propre.   Merci. 

0
dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 5 615
20 avril 2023 à 10:19

Modifié par mamiemando le 14/04/2023 à 14:01

qu'est ce qui a  été modifié ?

0
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 > dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024
3 mai 2023 à 13:50

Bonjour, 

Ta seconde proposition.  ;-)

0
jee pee Messages postés 39715 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 13 mai 2024 9 270
12 avril 2023 à 17:19

Bonjour,

Tu charges les données dans une base de données et tu effectues des requêtes SQL


0
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024
13 avril 2023 à 08:29

Merci mais pas possible. 

0