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

Résolu
mrcorben Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
mrcorben Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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


A voir également:

4 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
awk -v n=1 '{print > "fichier" n} /^END/ {n++}' fichier.txt
plus court
awk  '{print > "fichier" n+1} /^END/ {n++}' fichier.txt<
1
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
en respectant les espaces avant et après ' ?
essayer avec :
awk '{print > sprintf("fichier%d", n+1) } /END/ {n++}' fichier
1
mrcorben Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
mrcorben Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
S U P E R

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

et bon week end
merci
0