Le Script
  
				 Pour télécharger le script cliquez ici !
 
				
				
	
	
1       #!/bin/bash
2  
3       echo "Donnez le nom du dossier contenant les fichiers url : ";
4       read dos;
5       echo "Donnez le nom du fichier html ou stocker ces liens : ";
6       read tableau;
7  
8  
9  
10      #début du fichier html, le titre et le lien vers le fichier style.css
11 
12      echo "<html><head><link rel=\"stylesheet\" href=\"style.css\"/><meta charset=\"utf-8\" /><title>Americanisation</title></head><body>" >$tableau;
13 
14      j=1; #compteur pour les tableaux
15 
16 
17      #si le dossier FICHIERSGLOBAUX n'existe pas, il sera créé 
18          if [ ! -d "./FICHIERSGLOBAUX" ];then
19              mkdir ./FICHIERSGLOBAUX;
20          fi;
21 
22 
23 
24      #-------Pour chaque fichier dans le dossier URL-------#
25 
26      for fichierurl in `ls $dos`
27      {
28          #recuperer le nom du fichier pour nommer le sous-dossier et pour nommer le tableau      
29          retrievefilename=$(basename "$fichierurl")
30          filename=${retrievefilename%.*}
31          filenametitle=${filename//_/ };
32           
33         
34          #si les sous-dossiers PAGES-ASPIREES n'existent pas, ils seront créés 
35          if [ ! -d "./PAGES-ASPIREES/$filename" ];then
36              mkdir ./PAGES-ASPIREES/$filename
37          fi;
38 
39          #si les sous-dossiers DUMP-TEXT n'existent pas, ils seront créés  
40          if [ ! -d "./DUMP-TEXT/$filename" ];then
41              mkdir ./DUMP-TEXT/$filename;
42          fi;
43 
44          #si les sous-dossiers CONTEXTES n'existent pas, ils seront créés  
45          if [ ! -d "./CONTEXTES/$filename" ];then
46              mkdir ./CONTEXTES/$filename;
47          fi;
48 
49          #si le sous-dossier FICHIERSGLOBAUX/$filename n'existe pas, il sera créé  
50          if [ ! -d "./FICHIERSGLOBAUX/$filename" ];then
51              mkdir ./FICHIERSGLOBAUX/$filename;
52          fi;
53 
54 
55              #ouvrir les balises du tableau et nommer les th (table headers)
56              echo "<table><tr><th colspan=\"10\">Tableau numero $j ($filenametitle) :</th></tr>" >> $tableau;
57              echo   "<tr><th>N.</th>
58              <th>Lien</th>
59              <th>Retour curl</th>
60              <th>Retour http</th>
61              <th>Page Aspiree</th>
62              <th>Dump Initial</th>
63              <th>Dump UTF-8</th>
64              <th>Contextes</th>
65              <th>Contextes html</th>
66              <th>N. Occs</th></tr>" >> $tableau; 
67 
68              i=1; #compteur pour les URLs
69              
70              nbdump=0; #compteur pour le nombre de fichiers dans le dump global
71                  
72          
73          #-------Pour chaque lien dans le fichier------#
74                  
75          while read link #< $dos/$fichierurl
76              do
77                                  
78                  #1ère et 2ème colonnes
79                  echo "<tr>
80                    <td>$i</td>
81                    <td><a href=\"$link\">URL $i</a></td>">>$tableau;   
82 
83              
84              #--------Aspiration des pages-------#
85              
86              retourhttp=$(curl -s -o ./PAGES-ASPIREES/$filename/$i.html -w %{http_code} $link);
87              retourcurl=$?; 
88 
89                  #-------Erreur curl ou http------#
90 
91                  if [[ $retourhttp -ne 200 || $retourcurl -ne 0 ]] ; then
92 
93                  #----------Erreur curl---------#
94                  #--3ème colonne : retour curl--#   
95          
96                  if [ $retourcurl -ne 0 ]; then
97                      echo "<td class=\"erreur\">$retourcurl</td>" >> $tableau;
98                  else
99                      echo "<td>$retourcurl</td>">> $tableau;
100                 fi;
101                 
102
103                 #---------Erreur http----------#
104                 #--4ème colonne : retour http--#   
105                 if [ $retourhttp -ne 200 ]; then
106                     echo "<td class=\"erreur\">$retourhttp</td>" >> $tableau;
107                 else
108                     echo "<td>$retourhttp</td>" >> $tableau;
109                 fi;
110
111                 #5ème colonne : page aspirée - vide
112                 #6ème colonne: dump initial - vide
113                 #7ème colonne : dump utf-8 - vide
114                 #8ème colonne : contextes - vide
115                 #9ème colonne : contextes html - vide
116                 #10ème colonne :nombre d'occurrences - vide
117                 echo "<td class=\"erreur\"><a href=\"../PAGES-ASPIREES/$filename/$i.html\">Page aspiree  $i</a></td>
118                       <td class=\"erreur\"> - </td>
119                       <td class=\"erreur\"> - </td>
120                       <td class=\"erreur\"> - </td>
121                       <td class=\"erreur\"> - </td>
122                       <td class = \"erreur\"> - </td></tr>" >> $tableau;
123             
124
125             #-------Pas d'erreur--------#
126             #3ème colonne : retour curl
127             #4ème colonne : retour http
128             #5ème colonne : page aspirée
129             else
130                 echo "<td>$retourcurl</td>
131                       <td>$retourhttp</td>
132                       <td><a href=\"../PAGES-ASPIREES/$filename/$i.html\">Page aspiree  $i</a></td>" >> $tableau;
133             
134
135                 
136                 #------vérifier l'encodage de la page aspirée pour faire le dump------#
137
138                 encodage=$(file -i "./PAGES-ASPIREES/$filename/$i.html" | cut -d= -f2);
139                 
140                 #-------si c'est de l'utf-8-------#
141                 if [[ "$encodage" = "utf-8" ]]; then
142
143                     #lynx et dump utf-8
144                     echo ">>>>encodage niveau 1 - tableau $j, url $i, encodage: $encodage";
145
146                     lynx -dump -nolist -display_charset="$encodage" ./PAGES-ASPIREES/$filename/$i.html > ./DUMP-TEXT/$filename/$i-utf8.txt
147
148                     #extraction du contexte contenant le motif et le nombre d'occurrences
149                     
150                     egrep -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt > ./CONTEXTES/$filename/$i.txt;
151                     nbocc=??;
152                     nbocc=$(egrep -o -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt | wc -l );
153
154                     #minigrep
155                     perl ./PROGRAMMES/minigrepMultilingue2/minigrepmultilingue.pl  "UTF-8" ./DUMP-TEXT/$filename/$i-utf8.txt ./PROGRAMMES/minigrepMultilingue2/motif.txt ;
156                     mv resultat-extraction.html ./CONTEXTES/$filename/$i-utf8.html ;
157                     
158                     #création des FICHIERSGLOBAUX
159                     cat ./CONTEXTES/$filename/$i.txt >> ./FICHIERSGLOBAUX/$filename/CONTEXTES-GLOBAUX.txt;
160                     cat ./DUMP-TEXT/$filename/$i-utf8.txt >> ./FICHIERSGLOBAUX/$filename/DUMP-GLOBAUX.txt;
161                     let "nbdump=nbdump+1";
162
163                     #6ème colonne: dump initial
164                     #7ème colonne : dump utf-8
165                     #8ème colonne : contextes
166                     #9ème colonne : contextes html
167                     #10ème colonne : nombre d'occurrences
168                     echo "<td> --> </td>
169                            <td><a href=\"../DUMP-TEXT/$filename/$i-utf8.txt\">Dump utf-8  $i</a></td>
170                            <td><a href=\"../CONTEXTES/$filename/$i.txt\">Contextes  $i</a></td>
171                            <td><a href=\"../CONTEXTES/$filename/$i-utf8.html\">Contextes html  $i</a></td>
172                            <td>$nbocc</td></tr>">> $tableau;
173
174                 #-----si ce n'est pas de l'utf-8-------#
175                 #---vérifier si l'encodage est reconnu-----#
176                 else
177             
178                 reconnu=$(iconv -l | egrep -io "$encodage");
179
180                     #---- l'encodage n'est pas reconnu par iconv-----#
181                     
182                     if [[ $reconnu = "" ]];then
183                         
184                             
185                             # ------ détection encodage niveau 2 - dans le fichier -------#
186
187                         if egrep -qi "<meta.*charset?=.*" ./PAGES-ASPIREES/$filename/$i.html;then
188                             #extraction de l'encodage
189                             encodage=$(egrep -io "<meta.*charset?=.*" ./PAGES-ASPIREES/$filename/$i.html | awk 'BEGIN{FS="charset=";}{print $2}' | awk 'BEGIN{FS="[/>]";}{print $1}' | egrep -io "[^\" ]*" );
190
191                             #vérification qu'iconv reconnaît l'encodage extrait
192                             reconnu=$(iconv -l | egrep -io $encodage);
193
194
195                             #------ l'encodage n'est pas reconnu par iconv------#
196                             if [[ $reconnu = "" ]];then
197
198                                 #6ème colonne : dump initial - vide
199                                 #7ème colonne : dump utf-8 - vide
200                                 #8ème colonne : contextes - vide
201                                 #9ème colonne : contextes html - vide
202                                 #10ème colonne : nombre d'occurrences - vide
203                                     echo "<td class=\"erreur\">encodage iconnu ($encodage)</td>
204                                       <td class = \"erreur\"> encodage inconnu </td>
205                                       <td class=\"erreur\">encodage inconnu ($encodage)</td>
206                                       <td class = \"erreur\"> encodage inconnu </td>
207                                       <td> - </td></tr>" >> $tableau;
208
209                             #----- l'encodage est reconnu par iconv----#
210                             else
211                         
212                                 #lynx et dump initial
213                                 echo ">>>>encodage niveau 1 - tableau $j, url $i, encodage: $encodage";
214                                 lynx -dump -nolist -display_charset="$encodage" ./PAGES-ASPIREES/$filename/$i.html > ./DUMP-TEXT/$filename/$i.txt;
215
216                                 #convertir l'encodage en utf-8 --> dump utf-8
217                                 iconv -f $encodage -t utf-8 ./DUMP-TEXT/$filename/$i.txt > ./DUMP-TEXT/$filename/$i-utf8.txt
218
219                                 #extraction du contexte contenant le motif et du nombre d'occurrences
220                                 egrep -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt > ./CONTEXTES/$filename/$i.txt;
221                                 nbocc=??;
222                                 nbocc=$(egrep -o -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt | wc -l );
223                     
224                                 #minigrep
225                                 perl ./PROGRAMMES/minigrepMultilingue2/minigrepmultilingue.pl  "UTF-8" ./DUMP-TEXT/$filename/$i-utf8.txt ./PROGRAMMES/minigrepMultilingue2/motif.txt;
226                                 mv resultat-extraction.html ./CONTEXTES/$filename/$i-utf8.html ;
227                                 
228                                 #création des FICHIERSGLOBAUX
229                                 cat ./CONTEXTES/$filename/$i.txt >> ./FICHIERSGLOBAUX/$filename/CONTEXTES-GLOBAUX.txt;
230                                 cat ./DUMP-TEXT/$filename/$i-utf8.txt >> ./FICHIERSGLOBAUX/$filename/DUMP-GLOBAUX.txt;
231                                 let "nbdump=nbdump+1";
232
233
234                                 #6ème colonne : dump initial
235                                 #7ème colonne : dump utf-8
236                                 #8ème colonne : contextes
237                                 #9ème colonne : contextes html
238                                 #10ème colonne : nombre d'occurrences
239                                 echo "<td><a href=\"../DUMP-TEXT/$filename/$i.txt\">($encodage)</a></td>
240                                       <td><a href=\"../DUMP-TEXT/$filename/$i-utf8.txt\"> Dump utf-8</a></td>
241                                       <td><a href=\"../CONTEXTES/$filename/$i.txt\">Contextes  $i</a></td>
242                                       <td><a href=\"../CONTEXTES/$filename/$i-utf8.html\">Contextes html $i</a></td>
243                                       <td>$nbocc</td></tr>" >> $tableau;
244                             fi; 
245                             #---- fin - l'encodage est reconnu de iconv --#
246                     
247                         #---- si le charset n'est pas trouvé dans le fichier----#
248                         else
249                             #6ème colonne : dump initial
250                             #7ème colonne : dump utf-8 - vide
251                             #8ème colonne : contextes - vide
252                             #9ème colonne : contextes html - vide
253                             #10ème colonne : nombre d'occurrences - vide
254                                 echo "<td class=\"erreur\">$encodage</td>
255                                   <td class = \"erreur\"> pas de charset </td>
256                                   <td class = \"erreur\"> pas de charset </td>
257                                   <td class = \"erreur\"> pas de charset </td>
258                                   <td class = \"erreur\"> - </td></tr>" >> $tableau;
259                         fi;
260                         #----fin de la détection d'encodage niveau 2---#
261                         
262
263
264                     #----si l'encodage est reconnu par iconv------#
265                     else
266                         #lynx et dump initial
267                         echo ">>>>encodage niveau 1 - tableau $j, url $i, encodage: $encodage";
268                         lynx -dump -nolist -display_charset="$encodage" ./PAGES-ASPIREES/$filename/$i.html > ./DUMP-TEXT/$filename/$i.txt;
269
270                         #convertir l'encodage en utf-8 --> dump utf-8
271                         iconv -f $encodage -t utf-8 ./DUMP-TEXT/$filename/$i.txt > ./DUMP-TEXT/$filename/$i-utf8.txt
272         
273                         #extraction du contexte contenant le motif et du nombre d'occurrences
274                         egrep -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt > ./CONTEXTES/$filename/$i.txt;
275                         nbocc=??;
276                         nbocc=$(egrep -o -i "\W(([Aa]m.ricani[sz])|(εξαμερ[ίι]καν[ίι]σ)|([Aα]μερικανοπο[ίι]).*?)|([Aα]μερικανισμός)\W" ./DUMP-TEXT/$filename/$i-utf8.txt | wc -l );
277                         
278
279                         #minigrep
280                         perl ./PROGRAMMES/minigrepMultilingue2/minigrepmultilingue.pl  "UTF-8" ./DUMP-TEXT/$filename/$i-utf8.txt ./PROGRAMMES/minigrepMultilingue2/motif.txt ;
281                             mv resultat-extraction.html ./CONTEXTES/$filename/$i-utf8.html ;
282                             
283                         #création des FICHIERSGLOBAUX
284                         cat ./CONTEXTES/$filename/$i.txt >> ./FICHIERSGLOBAUX/$filename/CONTEXTES-GLOBAUX.txt;
285                         cat ./DUMP-TEXT/$filename/$i-utf8.txt >> ./FICHIERSGLOBAUX/$filename/DUMP-GLOBAUX.txt;
286                         let "nbdump=nbdump+1";
287
288
289                         #6ème colonne : dump initial
290                         #7ème colonne : dump utf-8
291                         #8ème colonne : contextes
292                         #9ème colonne : contextes html
293                         #10ème colonne : nombre d'occurrences
294                         echo "<td><a href=\"../DUMP-TEXT/$filename/$i.txt\">($encodage)</a></td>
295                               <td><a href=\"../DUMP-TEXT/$filename/$i-utf8.txt\"> Dump utf-8</a></td>
296                               <td><a href=\"../CONTEXTES/$filename/$i.txt\">Contextes  $i</a></td>
297                               <td><a href=\"../CONTEXTES/$filename/$i-utf8.html\">Contextes html $i</a></td>
298                               <td>$nbocc</td></tr>" >> $tableau;
299
300                     fi;
301                     #----fin - encodage reconnu par iconv  ----#
302
303
304                 fi;
305                 #---fin - encodage en utf-8  ---#
306                 
307
308             fi;
309             #----fin - erreur d'aspiration  ----#
310
311
312
313             let "i=i+1";
314             
315                 
316             done < $dos/$fichierurl;
317             let "j+=1";
318             
319
320             #fermerture des balises ouvertes
321             echo "<tr>
322                   <td class=\"final\"></td><td class=\"final\"></td><td class=\"final\"></td><td class=\"final\"></td><td class=\"final\"></td><td class=\"final\"></td>
323                   <td class=\"finalglob\"><a href=\"../FICHIERSGLOBAUX/$filename/DUMP-GLOBAUX.txt\">Dumps globaux ("$nbdump")</a></td>
324                   <td class=\"finalglob\"><a href=\"../FICHIERSGLOBAUX/$filename/CONTEXTES-GLOBAUX.txt\">Contextes globaux ("$nbdump")</a></td>
325                   <td class=\"final\"><td class=\"final\"></td>
326                   </tr>" >> $tableau;
327             echo "</table>" >> $tableau;  
328       
329     }  
330
331     echo "</body></html>" >> $tableau;  
332         
333