C'était bien ce qu'il me semblait avoir compris: l'ordre des différents "éléments" ("CELL alpha 1", "CELL giga_2", "CELL misc_3"...) n'est pas forcément le même dans les 2 fichiers conteneurs "My.TXT" et "Mysecond.TXT" et n'a pas vraiment d'importance. N'est-ce pas?
Du coup, ne serait-ce pas plus logique de nommer les fichiers intermédiaires en fonction de ce qu'on trouve dans la ligne "CELL".
Ainsi l'analyse de "My.TXT" séparerait les données des différents CELL en produisant, dans cet ordre, 3 fichiers:
Code:
"fichier-alpha-1.txt" "fichier-giga-2.txt" "fichier-misc-3.txt",
tandis que l'analyse de "Mysecond.TXT" produirait, dans cet ordre, les fichiers:
Code:
"fichier-db-giga-2.txt" "fichier-db-misc-3.txt" "fichier-db-alpha-1.txt"
L'analyse de comparaison reviendrait alors à faire:
Code:
1 2 3
| diff fichier-alpha-1.txt fichier-db-alpha-1.txt
diff fichier-giga-2.txt fichier-db-giga-2.txt
diff fichier-misc-3.txt fichier-db-misc-3.txt |
ce qui peut aisément être réalisé avec une boucle (sans s'occuper de l'ordre de création) et une petite manipulation de nom de fichier, comme:
Code:
1 2 3 4 5 6
| for dbfile in *-db-*.txt; do
file=${dbfile/-db/} # si ton shell le supporte
file=$(echo "$dbfile" | sed -e 's/-db//') # si ton shell ne supporte pas la ligne précédente
echo "======== Voici les différences entre '$file' et '$dbfile' ========"
diff "$file" "$dbfile"
end |
Avec "awk", j'imagine que certains experts pourront même faire tout ça en ram (lecture des 2 fichiers conteneurs et sans passer par les fichiers intermédiaires "fichier*.txt")...
Avis aux amateurs... ;)