Aide pour extraction de bloc d'information dans fichier.txt

Résolu
mrcorben Messages postés 4 Statut Membre -  
mrcorben Messages postés 4 Statut Membre -
Bonjour, a tous
Je sollicite vos connaissances pour l'aider un peu
En effet je souhaite extraire des données d'un fichier txt qui contient plusieurs fois (des centaines) des blocs d'informations que je souhaiterais écrire dans des fichiers séparés.
En gros un fichiers avec

ATOM 1 O5' G A 1 37.527 1.185 -19.786 1.00 4.72 O
ATOM 2 C5' G A 1 37.612 0.981 -21.200 1.00 4.96 C
ATOM 3 C4' G A 1 36.271 0.546 -21.784 1.00 4.98 C
ATOM 4 O4' G A 1 35.867 -0.685 -21.171 1.00 5.00 O
ATOM 5 C3' G A 1 35.115 1.493 -21.509 1.00 4.71 C
ATOM 6 O3' G A 1 35.030 2.400 -22.612 1.00 4.80 O
etc....
END (fin du bloc 1)
(......plusieurs copies avec la même syntaxte....)
ATOM 28 H8 G A 1 35.352 0.913 -18.715 1.00 4.35 H
ATOM 29 H1 G A 1 31.334 -3.632 -16.614 1.00 4.64 H
ATOM 30 H21 G A 1 30.633 -4.866 -18.318 1.00 5.01 H
ATOM 31 H22 G A 1 31.173 -4.575 -19.957 1.00 5.17 H
ATOM 32 P G A 2 34.706 3.961 -22.369 1.00 4.61 P
END (fin du bloc2)
etc....

le fichier est donc en "vrai" comme ça (ici seulement un repeat de 2)
ATOM 1 O5' G A 1 37.527 1.185 -19.786 1.00 4.72 O
ATOM 2 C5' G A 1 37.612 0.981 -21.200 1.00 4.96 C
ATOM 3 C4' G A 1 36.271 0.546 -21.784 1.00 4.98 C
ATOM 4 O4' G A 1 35.867 -0.685 -21.171 1.00 5.00 O
ATOM 5 C3' G A 1 35.115 1.493 -21.509 1.00 4.71 C
ATOM 6 O3' G A 1 35.030 2.400 -22.612 1.00 4.80 O
END
ATOM 28 H8 G A 1 35.352 0.913 -18.715 1.00 4.35 H
ATOM 29 H1 G A 1 31.334 -3.632 -16.614 1.00 4.64 H
ATOM 30 H21 G A 1 30.633 -4.866 -18.318 1.00 5.01 H
ATOM 31 H22 G A 1 31.173 -4.575 -19.957 1.00 5.17 H
ATOM 32 P G A 2 34.706 3.961 -22.369 1.00 4.61 P
END

Et je souhaite avoir si cela est possible des fichiers
Fichier 1
ATOM 1 O5' G A 1 37.527 1.185 -19.786 1.00 4.72 O
ATOM 2 C5' G A 1 37.612 0.981 -21.200 1.00 4.96 C
ATOM 3 C4' G A 1 36.271 0.546 -21.784 1.00 4.98 C
ATOM 4 O4' G A 1 35.867 -0.685 -21.171 1.00 5.00 O
ATOM 5 C3' G A 1 35.115 1.493 -21.509 1.00 4.71 C
ATOM 6 O3' G A 1 35.030 2.400 -22.612 1.00 4.80 O
END

Fichier 2
ATOM 28 H8 G A 1 35.352 0.913 -18.715 1.00 4.35 H
ATOM 29 H1 G A 1 31.334 -3.632 -16.614 1.00 4.64 H
ATOM 30 H21 G A 1 30.633 -4.866 -18.318 1.00 5.01 H
ATOM 31 H22 G A 1 31.173 -4.575 -19.957 1.00 5.17 H
ATOM 32 P G A 2 34.706 3.961 -22.369 1.00 4.61 P
END

Etc...
Soit générer des centaines de fichiers sans ordre précis mais avec à chaque fois un extrait du « gros » fichier

Merci de votre aide

Et bonne journée à tous

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    awk -v n=1 '{print > "fichier" n} /^END/ {n++}' fichier.txt
    plus court
    awk  '{print > "fichier" n+1} /^END/ {n++}' fichier.txt<
    1
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    en respectant les espaces avant et après ' ?
    essayer avec :
    awk '{print > sprintf("fichier%d", n+1) } /END/ {n++}' fichier
    
    1
  3. mrcorben Messages postés 4 Statut Membre
     
    Bonjour
    merci pour la réponse très rapide

    je viens d'essayer mais cela me donne

    awk: illegal statement at source line 1

    Je ne suis pas encore habitué au shell, désolé

    Merci de votre aide
    0
  4. mrcorben Messages postés 4 Statut Membre
     
    S U P E R

    merci bcq
    tout marche bien
    très bonne soirée à vous

    et bon week end
    merci
    0