• # solution vite fait

    Posté par . En réponse au message Extraire des blocs de données dans un fichier. AWK?. Évalué à 3.

    Voici une idée de solution (non testée, à verifier) :

    S'il s'agit juste d'eclater les blocs, c''est à) dire bloc 1 ecrit tel quel dans fichier.1, bloc 2 dans fichier.2, etc, alors il "suffit", lorsqu'on voit passer un '>', de changer le nom du fichier de sortie. Ce qui donne :

    awk 'BEGIN{file = "bloc_file";i=0; fichier_courrant = file "." i} />/{i++ ; fichier_courrant = file "." i; next} {print > fichier_courrant}'

    grosso modo : quand on voit passer ">", on incremente un compteur de blocs, i, puis on change le nom de fichier "bloc_file.i". next permet de passer direct à la ligne suivant, pour eviter le print.
    En temps normal, on se contente de faire un print de la ligne lue dans le fichier courrant.
    Le bloc BEGIN initialise les variables.