Bonjour,
Voilà j'ai deux fichiers. L'un contenant des phrases qu'on appelera phrases.txt, l'autres comprenant des mots (voir aussi des phrases) qu'on appelera interdits.txt. En gros voilà ce que je cherche à faire:
Toute les chaines de caractères comprises dans mon fichiers interdits.txt ne doivent pas être dans mon phrases.txt. C'est à dire que dès qu'une ligne de phrases.txt contient un mot ou une phrases de interdits.txt, il faut que cette ligne soit supprimée.
Les deux fichiers sont ordonnées de en colonne, un mot ou une phrase par ligne.
Je cherche à le faire de la façon la plus simple possible notament par sed ou bash.
J'ai déjà fait un truc dans le style
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part diff interdits.txt phrases.txt | grep ">" | sed s/\>// > toto
Mais le problème reste le même. Il compare le mot et supprime avec la même condition, c'est à dire une comparaison ligne à ligne. Si j'ai le mot interdits fromage et que j'ai les phrases fromage et fromage blanc. La phrase fromage sera supprimée mais pas fromage blanc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part for i in $(cat interdits.txt ); do sed /$i/d phrases.txt>tmp; cp tmp phrases.txt; done
Si vous avez des idées en Perl n'hésitez pas non plus
Merci par avance pour votre aide.
Partager