Bonjour,
Je souhaiterais comparer 2 fichiers qui peuvent éventuellement contenir des sous-répertoires.
Pour cela je liste dans un fichier (via un script) tous les chemins absolus avec la taille du fichier final en colonne 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SERVER1:kevin:/home/kevin>tree -s rep1 rep1 |-- [ 4096] rep11 | |-- [ 104] brian | |-- [ 26] dady | `-- [ 90] jon |-- [ 4096] rep12 | `-- [ 26] papa |-- [ 10] tata `-- [ 19] tutu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SERVER1:kevin:/home/kevin>ls rep1 rep11 rep12 tata tutu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SERVER1:kevin:/home/kevin>tree -s rep2_ref rep2_ref |-- [ 4096] rep21 | `-- [ 4096] rep211 | |-- [ 63] monica | `-- [ 75] santa |-- [ 4096] rep22 | |-- [ 50] file22_1 | `-- [ 15] file22_2 |-- [ 4096] rep23 |-- [ 10] tata `-- [ 10] titiDans mes 2 fichiers plats obtenus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SERVER1:kevin:/home/kevin>ls rep2_ref/ rep21 rep22 rep23 tata titi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SERVER1:kevin:/home/kevin>cat LISTE_rep1 /home/kevin/rep1/tata 10 /home/kevin/rep1/tutu 19 /home/kevin/rep1/rep12/papa 26 /home/kevin/rep1/rep11/jon 90 /home/kevin/rep1/rep11/dady 26 /home/kevin/rep1/rep11/brian 104Jusque là tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SERVER1:kevin:/home/kevin>cat LISTE_rep2_ref /home/kevin/rep2_ref/rep22/file22_2 15 /home/kevin/rep2_ref/rep22/file22_1 50 /home/kevin/rep2_ref/tata 10 /home/kevin/rep2_ref/rep21/rep211/santa 75 /home/kevin/rep2_ref/rep21/rep211/monica 63 /home/kevin/rep2_ref/titi 10
Seconde étape :
Si me fixe rep2_ref comme référence, je voudrais faire ressortir dans un fichier "difference_file.txt" tout ce qui est dans rep2_ref mais pas dans rep1 :
Pour cela j'utilise le code suivant :
Résultat dans le fichier difference_file.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk 'NR==FNR {t[$0]++; next} !t[$0]' /home/kevin/LISTE_rep1 /home/kevin/LISTE_rep2_ref > /home/kevin/difference_file.txt
A première vue je ne comprends pas pourquoi on trouve le fichier tata dans le résultat difference_file.txt alors qu'il se trouve dans les 2 dossiers et qu'il a la même taille. Il ne devrait pas ressortir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /home/kevin/rep2_ref/rep22/file22_2 15 /home/kevin/rep2_ref/rep22/file22_1 50 /home/kevin/rep2_ref/tata 10 /home/kevin/rep2_ref/rep21/rep211/santa 75 /home/kevin/rep2_ref/rep21/rep211/monica 63 /home/kevin/rep2_ref/titi 10
En revanche le fichier tutu est dans rep1 mais ne ressort pas dans difference_file.txt et cela me va bien car il ne figure pas dans rep2_ref.
Je rame là-dessus depuis des heures, impossible de trouver pourquoi je retrouve tata alors qu'il n'a rien à faire dans difference_file.txt .
C'est peut-être le code :
qui comporte quelque chose qui ne va pas……………………………. je ne vois pas du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk 'NR==FNR {t[$0]++; next} !t[$0]'






Répondre avec citation






Partager