Somme d'une colonne et date min et max

Fermé
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - Modifié le 25 avril 2023 à 14:45
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 - 25 avril 2023 à 15:45

Bonjour,

J'ai un fichier contenant les infos suivantes: 

serveur; info, info, date heure debut1, date heure de fin1, val1, type1
serveur; info, info, date heure debut2, date heure de fin2, val2, type2
serveur; info, info, date heure debut3, date  heure de fin3, val3, type3

J'ai besoin de sortir :

  1. la plus petite date heure de début
  2. la plus grande date heure de fin
  3. la somme des val
  4. la concaténation des types

J'envoie les commandes suivantes:

  • date heure de début : 
cat fichier | awk -F';' '{ print $4 }' | sort | head -1
  • date heure de fin   : 
cat fichier | awk -F';' '{ print $5 }' | sort | tail -1
  • somme :
awk -F";" '{total += $6 } END{print total;}'  fichier
  • concaténation:
awk -F';' '{ print $7 }' fichier | sort -u | awk 'BEGIN { FS=" "; ORS=" "}{ print $1 }' |  sed 's/[ ]*$//'
echo "$serveur; $datemin; $datemax; somme; $concat

Y-a-t'il moins lourd selon vous ?

Merci de votre aide. 

Bonne journée. 

A voir également:

3 réponses

dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
21 avril 2023 à 10:33

hello

quel est le format de date heure ?

quel est le séparateur de champ ; ou , ?

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

Merci pour ton intérêt.   

le format est  AAAA-MM-JJ  HH:MM:SS

séparateur ';'

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
25 avril 2023 à 15:45

Bonjour,

Peux-tu donner un petit exemple de fichier (quitte à l'anonymiser) et le résultat attendu ? As-tu des contraintes en terme de langage (t'autorises-tu par exemple le python) ? Ton programme consisterait à :

  • Charger une et une seule fois le fichier (par exemple avec le module csv),
  • Construire une structure de données pratique,
    • En particulier, la comparaison de date n'est pas celle de la comparaison de chaîne, par exemple 2023-1-3 précède 2023-1-12 et  2023-3-1 précède 2023-12-1. Pour éviter ce genre de problème en python, on passerait par une structure datetime.datetime.
  • Calculer et retourner les résultats demandés.

Bonne chance

0