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 :
- 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" )
- ils seront triés par ordre alphabèthique : ( | sort )
- les doublons de mots sont supprimés : ( | uniq )
- 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
Ajouter un commentaire




