Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/03/2018, à 23: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, à 23:02)


Peace

Hors ligne

#2 Le 05/03/2018, à 23: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, à 23:10)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 05/03/2018, à 23: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, à 23:35

MINYA

Re : Comparer contenu de plusieurs fichiers Awk/Bash

Merci beaucoup smile

Dernière modification par MINYA (Le 05/03/2018, à 23:36)


Peace

Hors ligne

#5 Le 06/03/2018, à 17: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, à 17:20)


Peace

Hors ligne

#6 Le 06/03/2018, à 18: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, à 19: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, à 19: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