#1 Le 05/03/2018, à 22:01
- MINYA
Comparer contenu de plusieurs fichiers Awk/Bash
Bonsoir,
Je voudrais comparer le contenu de plusieurs fichiers (8 au total) (contenant une colonne avec différents identifiants ID). Le but c'est de voir combien de fois chaque identifiant apparait ? (à chaque fois qu'il apparait dans un fichier +1, sinon 0)
Merci
Ex :
Fichier 1 :
ID_za
ID_MP
ID_LO
ID_bl
Fichier 2 :
ID_KD
ID_za
ID_fg
Fichier 3 :
ID_KD
ID_xc
Dernière modification par MINYA (Le 05/03/2018, à 22:02)
Peace
Hors ligne
#2 Le 05/03/2018, à 22:08
- Watael
Re : Comparer contenu de plusieurs fichiers Awk/Bash
salut,
avec awk (ou un tableau associatif en bash (les tableaux sont toujours associatifs dans awk)), chaque ID est utilisé comme indice du tableau, qui est incrémenté à chaque fois...
c'est pas très compliqué.
Dernière modification par Watael (Le 05/03/2018, à 22:10)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 05/03/2018, à 22:10
- pingouinux
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Bonsoir,
$ awk '{n[$0]++}END{for(k in n)print k,n[k]}' fichier_1 fichier_2 fichier_3
ID_fg 1
ID_xc 1
ID_bl 1
ID_za 2
ID_LO 1
ID_KD 2
ID_MP 1
Hors ligne
#4 Le 05/03/2018, à 22:35
- MINYA
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Merci beaucoup
Dernière modification par MINYA (Le 05/03/2018, à 22:36)
Peace
Hors ligne
#5 Le 06/03/2018, à 16:20
- MINYA
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Bonjour,
Finalement c'est plus compliqué que ça ! Comment comparer le contenu d'un fichier avec plusieurs fichiers (plus d'une centaine), et voir quand le contenu est exactement le même et avec quel fichier ? (Les fichiers ont exactement la même forme que ce que j'ai cité plus haut)
Merci pour toute aide
Dernière modification par MINYA (Le 06/03/2018, à 16:20)
Peace
Hors ligne
#6 Le 06/03/2018, à 17:15
- pingouinux
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Tu peux faire ceci :
md5sum liste_des_fichiers | sort
Les fichiers identiques auront la même signature et seront regroupés.
Hors ligne
#7 Le 06/03/2018, à 18:22
- MINYA
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Merci. Je viens d'essayer sur 4 fichiers (dont 2 sont identiques F1 et F2). Il me met les deux fichiers un après l'autre et juste après le fichier qui est le plus proche. Le soucis c'est qu'il n y a pas d'indication sur les fichiers qui sont exactement identiques.
Pour la liste de fichiers, j'ai plus d'une centaine de fichiers, est-il possible de mettre le chemin vers le dossier contenant tous les fichiers ?
Un grand merci
$ md5sum F1 F2 F3 F4 | sort
26c61240881f620dd7153dbb5fa9c1f3 F1
7c28058d47e270d7e6c68550cb0ab02a F4
836849a71803686880352e956427cfcb F3
c42d6c6c2f76ef035fda069f4861e6a8 F2
Peace
Hors ligne
#8 Le 06/03/2018, à 18:29
- pingouinux
Re : Comparer contenu de plusieurs fichiers Awk/Bash
Le soucis c'est qu'il n y a pas d'indication sur les fichiers qui sont exactement identiques.
Si la signature est différente, tes fichiers ne sont pas identiques.
Pour la liste de fichiers, j'ai plus d'une centaine de fichiers, est-il possible de mettre le chemin vers le dossier contenant tous les fichiers ?
md5sum chemin_vers_le_dossier/* | sort
Hors ligne