• # Awk

    Posté par (site web personnel) . En réponse au message Extraction de données avec AWK. Évalué à 3.

    Je ne peux pas t'aider beaucoup faute de pratiquer intensivement awk, et faute d'avoir sous les yeux les données à traiter, mais peut-être que les quelques remarques suivantes te seront utiles.

    • Àmha, tu passes à côté de ce qui fait la force de awk si tu n'appuie pas ton algorithme sur les variables RS (record separator) et FS (field separator). Dans la vraie vie, il arrive souvent que FS='\n', et que RS soit une ligne vide ou à tout le moins repérable. Tu peux ensuite, sur chaque ligne, extraire des sous-champs avec split.
    • Bien souvent, on passe son temps à reformater les données pour les rendre finalement plus facile à extraire. Si j'ai bien compris, c'est un champ dans la première ligne d'un enregistrement qui indique de combien de lignes est composé cet enregistrement. Auquel cas, il peut valoir le coup de commencer par insérer une ligne spéciale (#####) à la fin de chaque enregistrement pour simplifier leur repérage par la suite.
    • Awk fonctionne très bien encapsulé dans du sh. Tu peux écrire plusieurs fonctions sh qui ne sont composées que d'un appel à awk en suivant le principe une fonction, une tâche, et les enchaîner ensuite avec des tubes, voire ajouter un peu de sed et de sort si besoin.