Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
supprimer le retour chariot apres grep ou sed
Envoyé par: Frk

Bonjour,

J'aimerai afficher sur une même ligne le résultat de deux grep successifs ou d'un grep qui utilise un fichier de motifs.

Par exemple: find -iname *.txt -exec grep -e machaine1 -e macahine2 {} \;

renvoi :

machaine1...
macahine2...
machaine1...
macahine2...
machaine1...
macahine2...
etc...

je voudrais:
machaine1... machaine2...
machaine1... machaine2...
machaine1... machaine2...
etc...

J'ai essayé avec tr -d '\n' ou bien sed 's/\n//' (et quelques variantes) sans résultats.

Une idée ?

Poste le Friday 20 February 2009 19:41:29
Répondre     Citer    
Re: supprimer le retour chariot apres grep ou sed
Envoyé par: NBaH

en plus simple :
egrep -Rh "(machaine1|macahine2)" chemin/rep | sed '$!N;s/\n/ /'
...
?

Poste le Friday 20 February 2009 20:48:29
Répondre     Citer    
Re: supprimer le retour chariot apres grep ou sed
Envoyé par: Frk

Intéressant, mais ça ne fonctionne pas.

1- je cherche dans des fichiers qui dans différents sous-répertoires (ta solution donne un résultat si on se trouve dans le répertoire qui contient le(s) fichier(s) ciblé(s) )
2- avec le sed, la première chaîne disparaît

peux-tu m'expliquer la syntaxe que tu utilises avec sed (notamment le $!N)

Merci

Poste le Saturday 21 February 2009 16:58:47
Répondre     Citer    
Re: supprimer le retour chariot apres grep ou sed
Envoyé par: NBaH

egrep -R, ou grep -ER, va chercher le(s) motif(s) dans tous les fichiers de tous les sous-répertoires du répertoire donné. Sans, cependant, se limiter aux fichiers *.txt, mais c'est faisable:
egrep -Rh --include="*.txt" '(machaine1|macahine2)' chemin/rep
chemin/rep peut être ce que tu veux : ton home, la racine du système de fichier...

Quant au $!N :
$! : tant qu'on est pas à la fin du fichier, ou de l'entrée,
N : ajoute un nouvelle ligne à l'espace de travail, pour y mettre la ligne suivante.

Sans $!, N ferait s'arrêter sed à la fin du fichier, ou de l'entrée, sans éxécuter les autres commandes.

Poste le Saturday 21 February 2009 17:47:53
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
supprimer le retour chariot apres grep ou sed
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons