#1 Le 07/06/2012, à 13:06
- gadgetroch
Comparaison de un mot présent dans deux fichiers
Bonjour !
En fait voila le probleme, j'aimerais comparer deux fichiers
Exemple, dans mon fichier1 j'ai :
mot1
mot2
mot3
mot4
mot5
et dans le deuxieme j'ai :
mot6
mot7
mot1
mot8
mot3
J'aimerais qu'il me retourne mot1 et mot3.
Est ce possible en une ligne de commande ?
Merci
Hors ligne
#2 Le 07/06/2012, à 13:19
- Spitfire 95
Re : Comparaison de un mot présent dans deux fichiers
À vérifier mais ceci devrait marcher :
cat fichier1 fichier2 | sort | uniq -d
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#3 Le 07/06/2012, à 13:24
- inbox
Re : Comparaison de un mot présent dans deux fichiers
Salut,
Avec la commande diff avec l'option --left-column ou l'option --GTYPE-group-format plus %= (lignes communes a FICHIER1 et a FICHIER2).
A+
Un problème résolu ? Indiquez le en modifiant le titre du sujet.
Hors ligne
#4 Le 07/06/2012, à 13:26
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
en fait ca marche,
mais si j'ai par exemple :
mot1 dans le premier fichier et mot1blabla dans le deuxieme fichier
il me copiera mot1blabla alors que je ne le veux pas
Hors ligne
#5 Le 07/06/2012, à 13:27
- Postmortem
Re : Comparaison de un mot présent dans deux fichiers
Salut,
J'ai pas testé mais un truc dans le genre devrait le faire :
grep -f fichier1 fichier2
Édit :
Selon ce que tu veux faire, faut peut-etre inverser les noms de fichier.
Puis rajouter l'option -w si tu cherches un "mot exact"
Dernière modification par Postmortem (Le 07/06/2012, à 13:29)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#6 Le 07/06/2012, à 13:31
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
@Postmortem : j'ai deja teste mais il prend un temps fou, ou bien il m'affiche aussi mot1blabla (voir plus haut) je ne cherche pas de mot exact, je cherche le mot présent dans les deux fichiers
@inbox : le diff n'est pas une bonne idée
On devrait travailler sur la premiere réponse !
Hors ligne
#7 Le 07/06/2012, à 13:32
- Postmortem
Re : Comparaison de un mot présent dans deux fichiers
L'option -w devrait éviter de te sortir mot1blabla
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#8 Le 07/06/2012, à 13:36
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
Erreur : grep: Référence arrière invalide
Hors ligne
#9 Le 07/06/2012, à 13:38
- Postmortem
Re : Comparaison de un mot présent dans deux fichiers
Comment as tu écrit la commande ?
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#10 Le 07/06/2012, à 13:39
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
grep -w -f fichier1.lst fichier2.txt
Hors ligne
#11 Le 07/06/2012, à 13:46
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
Bon voila le travail si ca peut aider :
cat fichier1 fichier2 | sort | uniq -d > unique.txt
pw-inspector -m 4 -M 4 -i unique.txt -o pw.txt
Pour 4 caractéres
Hors ligne
#12 Le 07/06/2012, à 13:53
- Postmortem
Re : Comparaison de un mot présent dans deux fichiers
Je viens de tester avec grep et ça fonctionne bien :
$ more fichier1.lst fichier2.txt
::::::::::::::
fichier1.lst
::::::::::::::
mot1
mot2
mot3
mot4
mot5
::::::::::::::
fichier2.txt
::::::::::::::
mot6
mot7
mot1
mot8
mot3
mot1blabla
mot1
$ grep -wf fichier1.lst fichier2.txt
mot1
mot3
mot1
Dernière modification par Postmortem (Le 07/06/2012, à 13:54)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#13 Le 07/06/2012, à 13:57
- inbox
Re : Comparaison de un mot présent dans deux fichiers
Je confirme que la commande avec grep est OK.
Un problème résolu ? Indiquez le en modifiant le titre du sujet.
Hors ligne
#14 Le 07/06/2012, à 14:02
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
Mais elle me fait trop lagguer...
Je cherche dans un dico donc c'est dans les 20000 lignes (ca me sert pour le pendu )
Dernière modification par gadgetroch (Le 07/06/2012, à 14:03)
Hors ligne
#15 Le 07/06/2012, à 14:06
- Spitfire 95
Re : Comparaison de un mot présent dans deux fichiers
Ah un concurent !
Je vois pas ce que tu veux faire avec ça. Perso pour mes dico je prend les dico dans /usr/share/dict/ et je les nettoie via un script. Je ne comprend pas pourquoi tu prend plusieurs fichiers.
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#16 Le 07/06/2012, à 14:07
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
je compare par rapport a un fichier d'autre mots
Hors ligne
#17 Le 07/06/2012, à 14:11
- Spitfire 95
Re : Comparaison de un mot présent dans deux fichiers
SI tu veux, moi je fais comme ça :
#!/bin/bash
# [Header de la GPL3]
if [ $1 ] && [ $2 ]
then
awk 'length>5 && length<21 {print toupper($0)}' $1 | tr "çàâÅÀÁÂáåãéêèÉÊÈëïîÍÎíìôöÒÔÓóòûùúÛÚüñ" "CAAAAAAAAAEEEEEEEIIIIIIOOOOOOOUUUUUUN" | grep -v "[^A-Z]" > $2
else
echo "USAGE : ./clear_dict INPUT OUTPUT"
fi
exit 0
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#18 Le 07/06/2012, à 14:22
- gadgetroch
Re : Comparaison de un mot présent dans deux fichiers
j'aurais prefére en commande linux
Hors ligne
#19 Le 10/06/2012, à 06:35
- nesthib
Re : Comparaison de un mot présent dans deux fichiers
comm -12 <(sort fichier1) <(sort fichier2)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#20 Le 10/06/2012, à 08:00
- credenhill
Re : Comparaison de un mot présent dans deux fichiers
hello
$ head a0 a00
==> a0 <==
mot1 blabla blabla
mot2
mot3
mot4
mot5
==> a00 <==
mot6
mot7
mot1
mot8
mot3 blublu
$ awk 'x[$1]++ {print $1}' a0 a00
mot1
mot3
$
Hors ligne
#21 Le 10/06/2012, à 17:25
- nesthib
Re : Comparaison de un mot présent dans deux fichiers
Attention, les solutions comme la tienne credenhill ou celles de Spitfire 95 et Postmortem ne cherchent pas réellement les lignes communes aux deux fichiers mais cherchent les lignes dupliquées après concaténation des fichiers. Cela revient au même si et seulement si il n'y a pas de doublons dans un des fichiers.
ex :
fichier1
mot1
mot2
mot1
mot3
fichier2
mot3
mot4
mot5
Avec vos solutions mot1et mot3 sont retournés, avec la mienne seulement mot3.
Après, comme partout il suffit de savoir ce que l'on veut faire et les limites de sa méthode. Dans le cas où un fichier ne peut pas avoir de doublons la méthode de credenhill sera très bonne car elle n'implique pas de trier les fichiers et sera donc très rapide.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#22 Le 10/06/2012, à 17:41
- Postmortem
Re : Comparaison de un mot présent dans deux fichiers
Salut nesthib,
Il me semble que la mienne ne sort que les mots qui sont dans les 2 fichiers.
Je peux pas tester là mais grep prend les mots qui sont dans le fichier passé en argument de -f puis vérifie s'ils sont dans l'autre.
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#23 Le 10/06/2012, à 17:56
- pingouinux
Re : Comparaison de un mot présent dans deux fichiers
Bonsoir,
Je viens de vérifier, et confirme ce que dit Postmortem en #22.
Hors ligne
#24 Le 10/06/2012, à 23:01
- nesthib
Re : Comparaison de un mot présent dans deux fichiers
oui, pardon Postmortem, j'avais zappé l'option -f, tu as tout a fait raison
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#25 Le 11/06/2012, à 09:13
- credenhill
Re : Comparaison de un mot présent dans deux fichiers
@nesthib: ceci devrait ignorer les doublons dans le même fichier
$ awk 'xx[FILENAME, $1]++ {x[$1]--} ; x[$1]++ {print $1}' fichier1 fichier2
mot3
$
Hors ligne