|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 42 ![]() |
Bonjour à tous,
Je ne savais pas trop où poster ma question, j'espère ne pas trop être hors sujet ici... Voilà, je débute en awk, et j'essaye de récupérer certaines infos d'un fichier dans un autre. Pour cela, j'ai besoin de traiter ce fichier comme un tableau (de type matrice), et je n'arrive pas à trouver comment faire, j'ai essayé l'instruction "SUBSET" en vain... Quelqu'un pourrait-il m'aider svp ? Voici l'illustration de mon problème, j'ai un fichier ainsi constitué : champs1 champs2 champs3 champs4 champs5 champs6 ...etc Je veux faire un test : si champs3==1 alors nouveaufichier=champs2 champs3 champs6 Par exemple, comment faire svp ? Merci d'avance |
|
|
00
|
|
|
#2 | |
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 189 ![]() |
Citation:
d'après ce que tu dis, ton fichier contient 2 champs sur la 1ère ligne, 1 sur la 2ème et 3 sur la 3ème. Et tu voudrais tester l'unique champ de la 2ème ligne et s'il vaut 1 alors retourner le 2ème champ de la 1ère ligne, le 1er champ de la 2ème et le 3ème de la 3ème. C'est bien cela que tu veux faire? )jack( |
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 42 ![]() |
Bonjour,
Oui c'est bien cela, sauf que mon fichier est beaucoup plus grand et contient beaucoup plus de blocs de champs présentés à peu près comme dans mon exemple précédent. C'est pourquoi pour faire un test sur certains champs de certaines lignes et récupérer des champs des lignes précédentes et des lignes suivantes par rapport à ma ligne courante je pense que traiter mon fichier façon matrice sera plus simple pour faire des boucles dessus. Je vais mettre un extrait exact de mon fichier en exemple ce sera peut-être plus simple : " REDRESSEMENT 1 (15 ANS ET + MIXTE) : Converge Efficacité du redressement : 91.8 % Poids Maximum : 2.733813 Poids Minimum : 0.369164 REDRESSEMENT 2 (18 ANS ET + MIXTE) : Ne Converge Efficacité du redressement : 93.7 % Poids Maximum : 2.419821 Poids Minimum : 0.399674 ... etc" si le redressement converge je veux écrire dans un autre fichier : "REDRESSEMENT 1 converge Efficacité : 91.8%" Et si le redressement ne converge pas je veux remplacer ce redressement par un autre contenu un peu plus loin dans mon fichier en entrée. Merci d'avance pour toute aide ou suggestion !!! |
|
|
00
|
|
|
#4 | ||||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Ça semble le faire sans passer par une table en mémoire
http://www.shellunix.com/awk.html Code :
Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
||||
|
|
10
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 42 ![]() |
Merci beaucoup c'est super sympa !!! ça fonctionne comme j'en rêvais
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com