Double boucle Bash

Résolu
Maillon Messages postés 157 Statut Membre -  
Maillon Messages postés 157 Statut Membre -
Bonjour,

Voilà j'ai deux fichier toto.txt et titi.txt.
Ces deux fichiers contiennent la même liste de fichiers sauf que dans titi.txt j'ai changer l'extention du fichier.

REP="/home/maillon/Outils/rep/"
find $REP -type f -name "*.txt" -exec ls {} \; > txt.list
cp txt.list txt2.list

sed -i "s/\.txt/-home\.txt/g" txt2.list

Maintenant ce que je voudrais faire c'est parcourir mon fichier txt.list pour afficher :
"La ligne /home/maillon/Outils/rep/blala.txt est égal à la ligne /home/maillon/Outils/rep/blala-home.txt"

Donc au début je pensais faire quelque chose comme :
while read line
do
while read line2
do
"La ligne $line est égal à la ligne $line2"
done < titi.txt
done < toto.txt

Seulemenent ça marche pas parce qu'il parcours tout mon fichier titi.txt

Est-ce que quelqu'un aurait une idée ? Je ne pense pas que se soit compliquer mais j'y arrive pas.

Merci beaucoup.

Cordialement,
Configuration: Linux
Firefox 3.0.9

3 réponses

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

    Je n'arrive pas à comprendre la finalité de la chose, d'autant plus que tu ne fais aucun test de comparaison ;-\

    Si le but est d'afficher les 2 fichiers côte-à-côte il y a la commande "paste" qui le fait très bien ;-)
    0
  2. Maillon Messages postés 157 Statut Membre 5
     
    En fait je m'étais peut-être mal exprimer.

    Je lancais une comande dedans j'avais besoin du nom du fichier courant et du nom du fichier modifier.

    J'ai trouver un truc qui marche mais peut etre optimiser :
    while read line
    do
    echo $line > temp.list
    sed -i "s/\.txt/-home\.txt/" temp.list
    tmp=`cat temp.list`
    echo $line " -> " $tmp
    Commande $tmp $line
    done < txt.list

    J'espère que ça pourra aider quelqu'un.

    Cordialement,
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    On ne sait toujours pas l'intérêt de la manœuvre ! ;-(

    Quant à :
    echo $line > temp.list
    sed -i "s/\.txt/-home\.txt/" temp.list 
    Il serait plus simple de faire :
    echo ${line/\.txt/-home\.txt} > temp.list
    ;-))
    0
    1. Maillon Messages postés 157 Statut Membre 5
       
      Ui en fait désolé j'ai oublié de le dire :-)
      C'est pour faire de la minification de fichier (avec une appli java yuicompressor) vu que je voulais pas supprimer les fichiers existants. Je devais passer en paramètre le nouveau nom de fichier et le nom actuel du fichier.

      En tout cas merci pour ta commande c'est vrai c'est plus optimisé.

      J'espère avoir été clair :-)

      Cordialement,
      0