Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
850 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash]Suppression de lignes contenant des mots d'un autre fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash]Suppression de lignes contenant des mots d'un autre fichier

n°1452805
Skibyzou
Posté le 05-10-2006 à 14:35:06  profilanswer
 

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. La méthode grep -v semble la plus simple mais je dois me tromper dans la ligne de commande...
 
grep -v interdits.txt\ phrases.txt\ > toto
 
Merci par avance pour votre aide.

mood
Publicité
Posté le 05-10-2006 à 14:35:06  profilanswer
 

n°1453247
gloo
Posté le 06-10-2006 à 10:52:45  profilanswer
 

je te propose le shell suivant transf.sh :
 

Code :
  1. #!/bin/ksh
  2. cat interdits.txt | awk '
  3. { print "/" $0 "/ { getline }"}
  4. END { print "{print }"}
  5. ' > interdits.awk
  6. awk -f interdits.awk phrases.txt


 

n°1453435
aigles
Posté le 06-10-2006 à 15:10:36  profilanswer
 

La syntaxe pour la commande grep est la suivante :

grep -v -f interdits.txt phrases.txt > toto


Il y a une petite modification à apporter au script de gloo

#!/bin/ksh
awk '{ print "/" $0 "/ { next }"} END { print "{print }"}' interdits.awk > interdits.awk
awk -f interdits.awk phrases.txt


 
   


---------------
Jean Pierre.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash]Suppression de lignes contenant des mots d'un autre fichier

 

Sujets relatifs
parser un fichier xmlsauvegarde fichier batch
[VBS] executer une commande DOS dans un fichier VBSCréer un fichier RSS personnalisé à partir d'un RSS existant
[résolu] Supprimer toutes les lignes d'une feuille[C][Mandriva] Comment compiler un fichier d'extension .c?
OutOfMemoryError avec gros fichiergroup by sur un champ contenant des valeurs null sous oracle
aide pour vérifier si un fichier est uploadé[DELPHI] Comment transférer un fichier sur un site ...
Plus de sujets relatifs à : [Bash]Suppression de lignes contenant des mots d'un autre fichier


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR