Double lecture de fichier ligne par ligne

Résolu
padowan Messages postés 21 Date d'inscription   Statut Membre -  
padowan Messages postés 21 Date d'inscription   Statut Membre -
bonjour ,

J'ai suivi le "cours" pour la lecture de fichier ligne par ligne (jicipy)

Comment lire un fichier ligne par ligne

Je voudrai lire un fichier ligne par ligne , et comparer en même temps avec les ligne d'un autre fichier.

exemple :
-------------------------
fichier 1 :
toto
titi
tata
------------------------
fichier 2
un

trois
tata
cinq
titi
-------------------------

je voudrai tester le fichier un et le fichier deux en même temps et que ça me renvoi par exemple ceci :

fichier 3
------------------------
non
non
non
ok
non
ok

Voila ce que j'ai déjà fais mais c'est moyen

#! /bin/bash

while read line
do
while read toto
do
if [ $line = $toto ]; then
echo "ok"
else
echo "raté"
fi
done < temp4
done < temp5

Merci de m'aider
Configuration: Windows XP
Firefox 2.0.0.12

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    J'ai plutôt l'impression que ce que tu veux faire c'est de chercher si une ligne présente dans "fichier 2" l'est aussi dans "fichier 1" et ce sans se soucier de la place dans le fichier, non ?
    [tmpfs]$ cat foo.sh
    #! /bin/bash
    
    #set -xv
    
    while read ligne
    do grep -x "$ligne" fichier1 >/dev/null
    retval=$?
    case "$retval" in
    0)      echo "Ok"
            ;;
    1)      echo "Non"
            ;;
    *)      exit
            ;;
    esac
    done < fichier2
    
    [tmpfs]$ cat fichier1
    toto
    titi
    tata
    
    [tmpfs]$ cat fichier2
    un
    
    trois
    tata
    cinq
    titi
    
    [tmpfs]$ ./foo.sh
    Non
    Non
    Non
    Ok
    Non
    Ok
    
    [tmpfs]$
    Sinon pour comparer 2 fichiers il y a des utilitaires comme "diff" (diff3 pour 3 fichiers), "cmp" et "comm".

    ;-))
    1
  2. padowan Messages postés 21 Date d'inscription   Statut Membre 3
     
    Franchement tes génial.

    Je te dirai la note que j'aurai à mon stage

    Merci encor
    0