[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [BASH] problème avec un script



On Tue, Apr 08, 2008 at 01:45:39PM +0000, Tahar wrote:
> Bonjour à tous,
> 
> Je dispose de deux documents que je voudrais comparer, c'est à dire je voudrais savoir quelle ligne du premier se trouve dans le second le résultat est redirigé vers un fichier. j'ai utilisé grep dans une boucle while pour cela, mais j'ai souvent le message file not found ou bien rien du tout alors que je suis certain qu'il y a une entrée qui existe dans les deux fichiers (une entrée que j'ai rajouté manuellement dans les deux pour mes tests)
> 
> Voici le script que j'avais écris
> 
> #!/bin/bash
> while read line
> do
>     grep $line fichier1 >> comp_result
> done < fichier2

S'il y a des espaces dans une ligne de fichier2, tu exécutes
un grep qui n'est pas ce que tu veux. Si par exemple une
ligne contient "ceci est une ligne", tu fais:

grep ceci est une ligne fichier1 >> comp_result

grep cherche 'ceci' dans les fichiers 'est', 'une', 'ligne',
'fichier1'.

Il faut mettre $line entre guillemets

Sinon, diff(1) doit être pls adapté pour ce que tu fais.

Y.


Reply to: