Vous êtes sur la page 1sur 2

Exercices : manipulations de texte

Alexandra Volanschi avolansk@eila.univ-paris-diderot.fr Pascal Cabaud pc@eila.univ-paris-diderot.fr Dplacez-vous dans le rpertoire Exos sous GNU/Linux. Tlchargez ici l'archive Fichiers ncessaires pour les sances du 9 et 16 fvrier puis e!traire les "chiers de l'archive.

# $ %rer une liste de diffusion


$ %onvertir le "chier Talc_Participation_Anonymisee.xls au for&at .csv 'en utilisant le caract(re ta)ulation co&&e sparateur de cha&ps*. Deu! fa+ons de procder pourront ,tre tests 1. .uvrir le "chier avec OpenOffce puis / partir du &enu Fichier sauvegarder le "chier sous for&at .csv 'Comma-separe ed !alues*. 2. 0tiliser la co&&ande csv2xls. $ xls2csv Talc_Paricipation_Annonimise.xls > tpa.csv $ 1 partir du "chier tpa.csv e!traire la colonne correspondant au! adresses des participants / ce congr(s. $ cut -d ! -f" tpa.csv

$ 2odi"er la co&&ande prcdente de &ani(re / transfor&er les lignes co&portant deu! adresses par ligne 'spares par des point-virgules*. %o&&e rsultat de cette co&&ande on devrait o)tenir une seule adresse lectroni3ue par ligne. $ cut -d! -f" tpa.csv #tr $%$ $&n$ #tr -d &$ $ 2odi"er la co&&ande prcdente de &ani(re / effacer les espaces. $ cut -d! -f" tpa.csv #tr $%$ $&n$ #tr -d &$ #tr -d $ 2odi"er la co&&ande prcdente de &ani(re / &ettre toutes les adresses &ails sur une &,&e ligne spares par un %. $ cut -d! -f" tpa.csv #tr $%$ $&n$ #& ' tr -d # tr $&n$ % $ 4n"n rediriger la liste_diffus.txt. sortie de la co&&ande prcdente vers un "chier appel

$ cut -d! -f" tpa.csv #tr $%$ $&n$ #& ' tr -d # tr $&n$ % > liste_diffus.txt

5 $ %alculer la liste des 67 &ots les plus fr3uents


Dans le mini-corpus constitu des "chiers 8 st2(("()_s_22*_en_fr_ta+.txt

8 st2(("()_s_2,-_en_fr_ta+.txt 8 st2(("()_s_2,._en_fr_ta+.txt, 8 st2(("()_s_2/0_en_fr_ta+.txt.

en utilisant le caract(re "oc#er 1 af"cher successive&ent le contenu des 9 "chiers -

$ cat st1.txt

la for&e gnrale de ces "chiers est - mo ta)ulation a#a &t*.

$ i%ue e

lemma 'le sparateur est une

e!traire la colonne correspondant au! &ots puis en utilisant les co&&andes sort2-3 'alpha)ti3ue et nu&ri3ue* et uni42-3 'avec l'option -c* calculer la liste de fr3uence des &ots de ce "chier.

$ cat st1.txt # cut -f- # sort # uni4 -c

2odi"er la co&&ande prcdente de &ani(re / n'af"cher 3ue les 67 &ots les plus fr3uents.

$ cat st1.txt # cut -f- # sort -f # uni4 -c # sort -+r # 5ead -2( No e - la version GNU de sort2-3 ncessite d'utiliser l'option -+ 3ui n'est pas &entionne dans la nor&e :.;<= > cette version est la plus courante sur les s?st(&es GNU/Linux. #vec une version :.;<= de sort2-3 'sur les s?st(&es Unix traditionnels &'s em V ou (&)* utiliser l'option -n et non -+.

2odi"er la co&&ande prcdente de &ani(re / af"cher les @7 le&&es les plus fr3uentes.

$ cat st1.txt # cut -f) # sort -f #& ' uni4 -c # sort -+r -k - # 5ead -)( No e - &,&e re&ar3ue sur la version de la co&&ande sort2-3.

2odi"er la &,&e co&&ande de &ani(re / af"cher les A ti3uettes les plus fr3uentes.

$ cat st1.txt # cut -f2 #sort -f #& ' uni4 -c # sort -+r -k - # 5ead -" No e - &,&e re&ar3ue sur la version de la co&&ande sort2-3.

% $ Fr3uencer des )igra&&es


4n utilisant les co&&andes cat2-3 sort2-3 uni42-3 cut2-3 paste2-3 tr2-3 tail2-3 5ead2-3 et uni3ue&ent ces co&&andes crer la liste des A7 suites de 6 &ots les plus fr3uents dans votre corpus. *ndica ion - penser / utiliser l'option --lines67n avec la co&&ande tail2-3B $ cat 1.txt # tr -cs $89alp5a9:$ $&n$ #& ' tee ;tmp;mots- # tail --lines672 > ;tmp;mots2 $ paste ;tmp;mots- ;tmp;mots2 #sort #uni4 -c #sort -+r #5ead -"( No e - cette option --lines67n de tail2-3 n'est pas non plus standardise par les nor&es :.;<=. ;ur un s?st(&e Unix traditionnel l'option -n 72 suf"t. +ac O& , 3uoi3ue faisant partie de la fa&ille des s?st(&es (&) utilise une vieille version de GNU de tail2-3.