shell et fichier

shell et fichier - Shell/Batch - Programmation

Marsh Posté le 20-07-2005 à 10:23:23    

j'ai un fichier comme suit :

Code :
  1. --
  2. tata2,tata3,tata1
  3. toto1,toto2,toto3
  4. titi1,titi2,titi3
  5. --
  6. tata4,tata5,tata6
  7. toto4,toto5,toto6
  8. titi4,titi5,titi6
  9. --
  10. tata6,tata7,tata1
  11. toto7,toto8,toto9
  12. titi7,titi8,titi9
  13. --


c.à.d : des blocs de 3 lignes séparer par "--"
je voudrais avoir :

Code :
  1. tata2,tata3,tata1
  2. toto1,toto2,toto3
  3. titi1,titi2,titi3
  4. --
  5. tata6,tata7,tata1
  6. toto7,toto8,toto9
  7. titi7,titi8,titi9


c.à.d: avoir tous les blocs dont la 3 ème colonne de la première ligne est "tata1"
Merci


Message édité par demo2000 le 20-07-2005 à 10:46:16
Reply

Marsh Posté le 20-07-2005 à 10:23:23   

Reply

Marsh Posté le 20-07-2005 à 10:24:55    

Ecris un script qui fait ça. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 10:27:37    

Euh, rapport avec le langage C ?  
 
Et shell ok, mais quel shell ?

Reply

Marsh Posté le 20-07-2005 à 10:47:45    

avec awk ça peut se faire, mais je ne sait pas comment passer à une ligne précise ?


Message édité par demo2000 le 20-07-2005 à 10:50:03
Reply

Marsh Posté le 20-07-2005 à 13:17:32    

Tu n'as pas d'espace dans tes blocs ? Ce sont bien 3 "mots" séparés par des virgules ?


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 13:19:40    

Citation :


Tu n'as pas d'espace dans tes blocs ? Ce sont bien 3 "mots" séparés par des virgules ?


oui

Reply

Marsh Posté le 20-07-2005 à 13:31:12    

Sur ce forum, on ne donne pas de solutions toutes faites comme tu sembles l'attendre.
 
On peut par contre t'aiguiller ou te conseiller. Par quoi as-tu commencé ? Qu'as-tu déjà fait ? Quel langage de script connais-tu ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 13:33:04    

Quelle platforme ? Les AWK se comportent différement d'une à l'autre.


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 13:53:25    

Bon testé sous Cygwin (AWK) et sous Solaris (NAWK)

$ cat test1

--
tata2,tata3,tata1
toto1,toto2,toto3
titi1,titi2,titi3
--
tata4,tata5,tata6
toto4,toto5,toto6
titi4,titi5,titi6
--
tata6,tata7,tata1
toto7,toto8,toto9
titi7,titi8,titi9


 
$ awk -F"," -v Select="tata1" '$1 == "--" { next } $3 == Select { print $0 ; i=1 ; next } i == 1 { print $0 ; i=2 ; next } i == 2 { print $0 ; print "--" ; i=0 ; next }' test1

tata2,tata3,tata1
toto1,toto2,toto3
titi1,titi2,titi3
--
tata6,tata7,tata1
toto7,toto8,toto9
titi7,titi8,titi9
--


 
Tu as juste à changer la valeur de la variable Select si tu veux faire le test sur autre chose (tata6 par exemple):
 
$ awk -F"," -v Select="tata6" '$1 == "--" { next } $3 == Select { print $0 ; i=1 ; next } i == 1 { print $0 ; i=2 ; next } i == 2 { print $0 ; print "--" ; i=0 ; next }' test1

tata4,tata5,tata6
toto4,toto5,toto6
titi4,titi5,titi6
--


Message édité par Deadlock le 20-07-2005 à 14:35:18

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 14:05:16    

Deadlock -> tu es hors-charte. :o
 
Ce n'est pas pour rien ni pour faire chier que cette règle existe. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 14:05:16   

Reply

Marsh Posté le 20-07-2005 à 14:14:39    

sircam a écrit :

Deadlock -> tu es hors-charte. :o
Ce n'est pas pour rien ni pour faire chier que cette règle existe. :o

T'es apprenti modo ? Pour les scolaires je veux bien mais bon ... enfin bref.


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 14:18:44    

ça marche
demo2000 à écrit :

Citation :


 je ne sait pas comment passer à une ligne précise


la solution est la commade :

Citation :


next :stoppe le travail sur l'enregistrement courant
et passe au suivant ensuite, reprend les actions à partir du début du script (abandon du reste du script pour l’enregistrement courant)


Merci Deadlock


Message édité par demo2000 le 20-07-2005 à 14:24:23
Reply

Marsh Posté le 20-07-2005 à 15:35:02    

Deadlock a écrit :

T'es apprenti modo ? Pour les scolaires je veux bien mais bon ... enfin bref.


Certainement pas, mais j'aime passer du temps sur ce forum, et moins on donnera de réponses toutes cuites, moins aura de leechers qui reviendront tous les 5 jours sans jamais faire d'effort.
 
Ce genre de règles n'existent pas pour plaire au modos.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 16:15:44    

sircam a écrit :

Certainement pas, mais j'aime passer du temps sur ce forum, et moins on donnera de réponses toutes cuites, moins aura de leechers qui reviendront tous les 5 jours sans jamais faire d'effort.
Ce genre de règles n'existent pas pour plaire au modos.

Moi aussi j'aime passer du temps ici, mais si un jour je suis dans la m...e et qu'une personne pouvant me dépanner me donne seulement des pistes et non la solution à cause d'une interprétation (personnelle) de certaines rêgles je trouverai ce forum bien moins "sexy".


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 16:47:59    

Deadlock a écrit :

Moi aussi j'aime passer du temps ici, mais si un jour je suis dans la m...e et qu'une personne pouvant me dépanner me donne seulement des pistes et non la solution à cause d'une interprétation (personnelle) de certaines rêgles je trouverai ce forum bien moins "sexy".


Cela n'a rien d'une interprétation personnelle :
 

Citation :

[0C] On ne fait pas le boulot à votre place.


 
Désolé, mais c'est précisemment ce que tu as fait. Rien de grave, je ne te jette pas la pierre et je ne te fais pas la morale, mais tu dois comprendre que cette règle claire n'est pas là par hasard.
 
On attend au moins un début de solution ou de recherche. Ce que tu ferais si tu posais une question, n'est-ce pas ? Et ce n'était pas le cas en l'espèce.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 18:01:56    

On respecte les rêgles si on y adhère. Je continurai à aider les gens de la façon qui me plait. Et puis ce débat n'a pas lieu d'être car ni toi ni moi ne sommes là pour faire respecter les "rêgle" du forum.


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 18:45:44    

Deadlock a écrit :

On respecte les rêgles si on y adhère.


Tu veux dire que tu n'as pas adhéré aux règles en t'inscrivant sur ce forum ? Tu te prends pour qui ? :o
 
Donc, par exemple, si j'ai décidé de ne pas adhérer aux règles, je peux t'insulter, ça ne te dérange pas ?
 

Deadlock a écrit :

Je continurai à aider les gens de la façon qui me plait. Et puis ce débat n'a pas lieu d'être car ni toi ni moi ne sommes là pour faire respecter les "rêgle" du forum.


Belle mentalité. Tu n'as rien fait de bien méchant, on va laisser ça comme ça pour cette fois.
 
Mais essaye de passer outre à des règles plus fondamentales et je me ferai un plaisir de demander aux personnes chargées de les faire respecter de te les rappeler.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 19:00:59    

sircam a écrit :

Tu veux dire que tu n'as pas adhéré aux règles en t'inscrivant sur ce forum ? Tu te prends pour qui ? :o Belle mentalité. Tu n'as rien fait de bien méchant, on va laisser ça comme ça pour cette fois.  
Mais essaye de passer outre à des règles plus fondamentales et je me ferai un plaisir de demander aux personnes chargées de les faire respecter de te les rappeler.


 
Non mais il a fini de faire son petit flic le gamin ??? T'es amusant au début mais là tu commences à me chauffer ... et pour ta gouverne quand je me suis inscrit ces rêgles n'étaient pas encore publiées ... Et puis comme tu sembles vouloir pourrir se topic je vais y remédier moi-même !
 
http://forum-images.hardware.fr/themes_static/images_forum/1/exclam.gif


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 19:07:07    

Deadlock a écrit :

Non mais il a fini de faire son petit flic le gamin ??? T'es amusant au début mais là tu commences à me chauffer ... et pour ta gouverne quand je me suis inscrit ces rêgles n'étaient pas encore publiées ... Et puis comme tu sembles vouloir pourrir se topic je vais y remédier moi-même !
 
http://forum-images.hardware.fr/th [...] exclam.gif


Je ne te comprends vraiment pas. Je te cite :

Citation :

On respecte les rêgles si on y adhère.


 

Citation :

Je continurai à aider les gens de la façon qui me plait.


 
Et tu me traites de gamin, ce n'est pas courtois.  :non:  
 
Tout cela parce que je t'ai aimablement rappelé une règle du forum, utile à l'ensemble des forumeurs, et que tu me réponds en gros "je fais comme je veux" ??? :ouch:
 
C'est très égoïste.  :non:
 

Citation :

 Sur ce forum, on ne donne pas de solutions toutes faites comme tu sembles l'attendre.
 
On peut par contre t'aiguiller ou te conseiller. Par quoi as-tu commencé ? Qu'as-tu déjà fait ? Quel langage de script connais-tu ?


Si tu m'en veux pour ça, hé beh...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 19:09:10    

/ignore sircam


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 20-07-2005 à 19:15:13    

Deadlock a écrit :

/ignore sircam


Boah, comme tu veux. [:airforceone]
 
Pas la peine de prendre la mouche, hein. [:airforceone]
 
Comme tu es susceptible !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-07-2005 à 20:30:31    

bon, pb résolu, donc je ferme
deadlock >> ça partait surement d'une bonne intention, mais évite à l'avenir stp, comme je te l'ai expliqué en MP


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-07-2005 à 13:10:19    

sircam a écrit :

Comme tu es susceptible !

Comment ne pas l'être face à une telle lourdeur ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed