Lingunix

Les outils unix appliqués à la recherche linguistique et psycholinguistique

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille

Extraire tous les mots différents d'un texte avec grep, sed, sort et uniq

Imprimer PDF

Commande :

grep . texte.txt | sed -e 's/\ /\n/g; s/,/\n/g; s/\./\n/g; s/?/\n/g; s/;/\n/g; s/(/\n/g; s/)/\n/g; s/-/\n/g' | sed "s/’/\n/g; s/'/\n/g; s/\ /\n/g; s/—/\n/g; s/ /\n/g; s/\//\n/g" | sort | uniq | grep '^[a-z]' | grep '[a-z]$' > resultat.txt

Résultat :

Ce script écrit dans une colonne tous les mots différents du texte texte.txt. Il n'y a pas deux fois le même mot dans la colonne.

Explication :

  1. Tous les mots seront d'abord écrits dans une colonne : ( grep . texte.txt | sed -e 's/\ /\n/g; s/,/\n/g; s/\./\n/g; s/?/\n/g; s/;/\n/g; s/(/\n/g; s/)/\n/g; s/-/\n/g' | sed "s/’/\n/g; s/'/\n/g; s/\ /\n/g; s/—/\n/g; s/ /\n/g; s/\//\n/g" )
  2. ils seront triés par ordre alphabèthique : ( | sort )
  3. les doublons de mots sont supprimés : ( | uniq )
  4. les chaînes de caractères qui commencent et se terminent par une lettre sont séléctionnées et envoyées dans le fichier résultat : ( | grep '^[a-z]' | grep '[a-z]$' > resultat.txt )

Alternative :

grep . texte.txt | sed "s/\W/\ /g" | sort | uniq | grep '^[a-z]' | grep '[a-z]$' > resultat.txt

Mise à jour le Dimanche, 16 Janvier 2011 16:21  

Ajouter un Commentaire


Code de sécurité
Rafraîchir