Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Grep sur des fichiers : resultat louche...
Envoyé par: georgesfr

Bonjour

Je pars avec 2 fichiers, et je souhaite recuperer l'intersection de c'est deux fichiers, c.a.d les lignes qui sont contenues dans les 2... j'utilise donc la commande grep mais je n'obtient pas le resultat souhaité... ou est l'erreur?

Exemple
fichier "ajouter" :
code
#! /bin/bash
echo "Entrez un nom de fichier :"
read nom
if [ -f $nom ]
then
echo "Entrez le texte que doit contenir le fichier :"
read texte
echo $texte >>$nom
echo "Le texte a été ajouté dans le fichier"
else
echo "Ce fichier n'existe pas, vous devez le creer"
fi
fi

fichier "creer"
#! /bin/bash
echo "Entrer un nom de fichier :"
read nom
if [ -f $nom ]
then
echo "Ce fichier existe deja, impossible de le creer"
else
echo "Entrer le texte que doit contenir le fichier"
read texte
echo $texte >$nom
echo "Fichier créé"
fi

si je fais un
grep -f ajouter creer

il me sort
#! /bin/bash
echo "Entrer un nom de fichier :"
read nom
if [ -f $nom ]
then
echo "Ce fichier existe deja, impossible de le creer"
else
echo "Entrer le texte que doit contenir le fichier"
read texte
fi

or plusieurs lignes de ce resulat ne sont pas dans les deux fichiers... j'ai suement mal utilisé le grep mais je ne vois pas ou est le probleme..

merci pour votre aide

Poste le Friday 23 February 2007 16:13:22
Répondre     Citer    
Re: Grep sur des fichiers : resultat louche...

Pour comparer des fichiers ligne à ligne, la commande diff me parait plus appropriée, et il y a aussi le menu ediff sous Emacs.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 23 February 2007 16:15:50
Répondre     Citer    
Re: Grep sur des fichiers : resultat louche...
Envoyé par: georgesfr

certes.. le man de diff commence bien
mais, si je tape
diff creer ajouter
ca me donne ca..

2c2
< echo "Entrer un nom de fichier :"
---
> echo "Entrez un nom de fichier :"
6,8c6
< echo "Ce fichier existe deja, impossible de le creer"
< else
< echo "Entrer le texte que doit contenir le fichier"
---
> echo "Entrez le texte que doit contenir le fichier :"
10,11c8,11
< echo $texte >$nom
< echo "Fichier créé"
---
> echo $texte >>$nom
> echo "Le texte a été ajouté dans le fichier"
> else
> echo "Ce fichier n'existe pas, vous devez le creer"

j'ai surement du louper un truc mais je vois pas trop qui correspond a quoi la dedans..

Poste le Friday 23 February 2007 16:30:09
Répondre     Citer    
Re: Grep sur des fichiers : resultat louche...

Les signes < et > en première colonne sont à comprendre comme des flêches à gauche ou à droite, désignant le premier ou le second fichier comparé. Ils indiquent les lignes qui sont différentes, et la ligne comme 2c2 qui les précède correspond (grossièrement) à un numero de ligne (précisément, c'est une commande pour ed). La commande diff a aussi les options -c ou -u qui sont utiles.

Et l'inverse de diff est la commande patch



----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 23 February 2007 16:36:44
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Grep sur des fichiers : resultat louche...
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