tyrann27 Posté(e) le 28 octobre 2008 Partager Posté(e) le 28 octobre 2008 Hello amis scriptiens ! (ça existe? ) J'ai besoin pour le taf de faire du grep récursif dans une arborescence. Ce sont des codes sources et voici 2 exemples de ce que je peux avoir besoin de trouver : callnat 'prog1' param1 param2 param3 ou callnat 'prog1' param1 param2 param3 Et évidemment le but de ma recherche est de trouver les param* qui sont utilisés dans les sources... pour résumer, je cherche d'abord param2 (par exemple) puis je grep sur callnat (c'est ça que je cherche principalement). Le truc c'est que dans le 2ème cas, param2 est pas sur la même ligne donc il sortira pas... J'ai donc adapté mon grep pour faire un grep -A 5 (5 pour la sécurité du nombre de paramètres) et donc j'aurai mes résultats séparés par des lignes contenant -- Le truc c'est qu'après je voudrais coupler tout ça pour que tout ce qui est entre les -- se retrouvent sur la même ligne afin de faire le grep sur le callnat... En gros, quand je trouve par exemple : /chemin/du/fichier/monfichier.ext:3450Callnat 'prog1' /chemin/du/fichier/monfichier.ext:3460Param1 /chemin/du/fichier/monfichier.ext:3470Param2 /chemin/du/fichier/monfichier.ext:3480Param3 /chemin/du/fichier/monfichier.ext:3460blablabla /chemin/du/fichier/monfichier.ext:3460blablablaaaaaa -- /chemin/du/fichier/monfichier.ext:3450Callnat 'prog2' /chemin/du/fichier/monfichier.ext:3460Param2 /chemin/du/fichier/monfichier.ext:3470Param7 /chemin/du/fichier/monfichier.ext:3480Param8 /chemin/du/fichier/monfichier.ext:3460blablablaaaaaaaaaaa /chemin/du/fichier/monfichier.ext:3460blablablaaaaaabbbbbbbbbbb Il faudrait que je puisse les remettre ensembles sur une ligne... Genre : /chemin/du/fichier/monfichier.ext:3450Callnat 'prog1'/chemin/du/fichier/monfichier.ext:3460Param1/chemin/du/fichier/monfichier.ext:3470Param2/chemin/du/fichier/monfichier.ext:3480Param3/chemin/du/fichier/monfichier.ext:3460blablabla/chemin/du/fichier/monfichier.ext:3460blablablaaaaaa -- /chemin/du/fichier/monfichier.ext:3450Callnat 'prog2'/chemin/du/fichier/monfichier.ext:3460Param2/chemin/du/fichier/monfichier.ext:3470Param7/chemin/du/fichier/monfichier.ext:3480Param8/chemin/du/fichier/monfichier.ext:3460blablablaaaaaaaaaaa/chemin/du/fichier/monfichier.ext:3460blablablaaaaaabbbbbbbbbbb Vous voyez ce que je veux dire ? Ou alors si vous avez une meilleure idée... Je suis preneur également Merci d'avance ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 28 octobre 2008 Partager Posté(e) le 28 octobre 2008 un coup de | tr -d '\n' | sed 's/--/\ --\ /g' après ton grep. Le \ suivi d'un saut de ligne est pour insérer des retours chariot Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 28 octobre 2008 Auteur Partager Posté(e) le 28 octobre 2008 Merci lorinc, c'est parfaitement ce que je voulais Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 28 octobre 2008 Partager Posté(e) le 28 octobre 2008 un coup de | tr -d '\n' | sed 's/--/\ --\ /g' après ton grep. Le \ suivi d'un saut de ligne est pour insérer des retours chariot Tu sais que tu peux aussi utiliser \n entre " ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.