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 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 tongue)

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 ! lol
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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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