# Sophie R - Japonais #On indique que le script est un script bash #!/bin/bash #On supprime le tableau déjà existant s'il existe rm -f "./TABLEAUX/tableau.html" ; #On indique les chemins vers les fichiers d'URL et vers le dossier qui contiendra le tableau echo "Les urls SONT DANS : ./URLS" ; echo "On créé le tableau HTML dans : ./TABLEAUX" ; #On crée la variable numéro tableau numerotableau=1; #On crée la variable motif motif="誘拐|子ども|子供" #Maintenant on lit les fichiers dans notre répertoire URLs, même si ici nous n'en traiterons qu'un seul (celui du japonais) for fichier in $(ls ./URLS) do #On compte les URLs dans chaque fichier compteur=1; #echo "./URLS/$fichier"; #On passe maintenant à la création du tableau #On nomme la page TABLEAU D'URLs #On n'oublie pas à chaque fois d'ajouter ce que l'on écrit dans le fichier.html avec les doubles chevrons >> echo "TABLEAU D'URLs" >> "./TABLEAUX/tableau.html"; #On crée le tableau et on définit les dimensions echo "" >> "./TABLEAUX/tableau.html" ; #On colore le fond de la première ligne qui contiendra le titre des colonnes #On crée les colonnes Nº, URL, Code http, Encodage, Page aspirée, et Dump #On ajoute les colonnes Filtrage txt, Filtrage html, Index, Bitexte, et Fréquence motif echo "" >> "./TABLEAUX/tableau.html" ; #On lit les lignes de notre fichier une par une : chaque URL for ligne in $(cat "./URLS/$fichier") do #echo "Traitement de l'URL $ligne"; #On teste la communication avec la page, en récupération http_code avec curl coderetour=$(curl -SIL -o tmp.txt -w %{http_code} $ligne); #Si le code retour est 200, on récupère l'encodage if [[ $coderetour == 200 ]] #On entre dans la première boucle if then encodage=$(curl -sIL -o toto -w %{content_type} $ligne | cut -f2 -d"=" | tr '[a-z]' '[A-Z]' | tr -d '\r'); vraiencodage=$(egrep -o "charset=\"*[^\"']+" < PAGES-ASPIREES/$numerotableau-$compteur.html | cut -f2 -d=|tr -d '"'|tr "[[:lower:]]" "[[:upper:]]"|uniq); #echo "Encodage : $encodage"; #On passe maintenant à l'aspiration des pages curl -L -o "./PAGES-ASPIREES/$numerotableau-$compteur.html" "$ligne"; #On sélectionne les pages dont l'encodage est en UTF-8 if [[ $encodage == "UTF-8" ]] #On entre dans la seconde boucle if then lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage "./PAGES-ASPIREES/$numerotableau-$compteur.html" > "./DUMP-PRETOKEN/$numerotableau-$compteur.txt"; ##### JANOME ##### cp ./DUMP-TEXT/$numerotableau-$compteur.txt ./DUMP-PRETOKEN/$numerotableau-$compteur.txt; #On lance le script Python python3 ./PROGRAMMES/janome2.py ./DUMP-PRETOKEN/$numerotableau-$compteur.txt ./DUMP-TEXT/$numerotableau-$compteur.txt; #On crée un fichier contexte txt egrep -i -C2 "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt" > "./CONTEXTES/$numerotableau-$compteur.txt"; #On crée un fichier contexte html en utilisant minigrep perl ./minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$numerotableau-$compteur.txt ./minigrep/parametre-motif.txt; mv resultat-extraction.html ./CONTEXTES/$numerotableau-$compteur.html; #On crée un index par ordre décroissant egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" | sort | uniq -c | sort -r > "./DUMP-TEXT/index-$numerotableau-$compteur.txt"; #On crée les bigrammes egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" > bigramme1.txt; tail -n +2 bigramme1.txt > bigramme2.txt ; paste bigramme1.txt bigramme2.txt > bigramme3.txt ; cat bigramme3.txt|sort|uniq -c|sort -r > "./DUMP-TEXT/bigramme-$numerotableau-$compteur.txt"; #On calcule la fréquence du motif nbmotif=$(egrep -coi "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt"); #On écrit les résultats dans le tableau echo "" >> "./TABLEAUX/tableau.html"; #On considère maintenant le cas où l'encodage n'est pas en UTF-8 else if [[ $vraiencodage == "UTF-8" ]] then #Ici on copie colle la même chose qu'au dessus #DÉBUT COPIÉ-COLLÉ lynx -dump -nolist -assume_charset=$vraiencodage -display_charset=$vraiencodage "./PAGES-ASPIREES/$numerotableau-$compteur.html" > "./DUMP-PRETOKEN/$numerotableau-$compteur.txt"; python3 ./PROGRAMMES/janome2.py ./DUMP-PRETOKEN/$numerotableau-$compteur.txt ./DUMP-TEXT/$numerotableau-$compteur.txt; egrep -i -C2 "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt" > "./CONTEXTES/$numerotableau-$compteur.txt"; perl ./minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$numerotableau-$compteur.txt ./minigrep/parametre-motif.txt; mv resultat-extraction.html ./CONTEXTES/$numerotableau-$compteur.html; egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" | sort | uniq -c | sort -r > "./DUMP-TEXT/index-$numerotableau-$compteur.txt"; egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" > bigramme1.txt; tail -n +2 bigramme1.txt > bigramme2.txt ; paste bigramme1.txt bigramme2.txt > bigramme3.txt ; cat bigramme3.txt|sort|uniq -c|sort -r > "./DUMP-TEXT/bigramme-$numerotableau-$compteur.txt"; nbmotif=$(egrep -coi "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt"); echo "" >> "./TABLEAUX/tableau.html"; #FIN COPIÉ-COLLÉ else # CONVERSION EN UTF-8 À L'AIDE D'ICONV iconv -f $vraiencodage -t UTF-8 < ./PAGES-ASPIREES/$numerotableau-$compteur.html > ./PAGES-ASPIREES/$numerotableau-$compteur-converti.html; # TRAITEMENT lynx -dump -nolist -assume_charset=UTF-8 -display_charset=UTF-8 "./PAGES-ASPIREES/$numerotableau-$compteur-converti.html" > "./DUMP-PRETOKEN/$numerotableau-$compteur.txt"; python3 ./PROGRAMMES/janome2.py ./DUMP-PRETOKEN/$numerotableau-$compteur.txt ./DUMP-TEXT/$numerotableau-$compteur.txt; egrep -i -C2 "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt" > "./CONTEXTES/$numerotableau-$compteur.txt"; perl ./minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$numerotableau-$compteur.txt ./minigrep/parametre-motif.txt; mv resultat-extraction.html ./CONTEXTES/$numerotableau-$compteur.html; egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" | sort | uniq -c | sort -r > "./DUMP-TEXT/index-$numerotableau-$compteur.txt"; egrep -o "[ぁ-んァ-ン一-龯]+" "./DUMP-TEXT/$numerotableau-$compteur.txt" > bigramme1.txt; tail -n +2 bigramme1.txt > bigramme2.txt ; paste bigramme1.txt bigramme2.txt > bigramme3.txt ; cat bigramme3.txt|sort|uniq -c|sort -r > "./DUMP-TEXT/bigramme-$numerotableau-$compteur.txt"; nbmotif=$(egrep -coi "誘拐|子ども|子供" "./DUMP-TEXT/$numerotableau-$compteur.txt"); echo "" >> "./TABLEAUX/tableau.html"; fi ; fi #FIN TRAITEMENT #On considère le cas où le code n'est pas égal à 200 else #On ne traite par cette URL echo "" >> "./TABLEAUX/tableau.html"; fi #On sort de la première boucle if #On incrémente le compteur d'URLs compteur=$((compteur+1)); done #On ferme les balises du tableau echo "
URLCode httpEncodage intial trouvéVrai encodageEncodage après iconvPage aspiréeDumpFiltrage txtFiltrage htmlIndexBitexteFréquence Motif
$compteur$ligneCode_http:$coderetour$encodage--$numerotableau-$compteur.html$numerotableau-$compteur.txt$numerotableau-$compteur.txt$numerotableau-$compteur.htmlindex-$numerotableau-$compteurbigramme-$numerotableau-$compteur$nbmotif
$compteur$ligneCode_http:$coderetour$encodage$vraiencodage-$numerotableau-$compteur.html$numerotableau-$compteur.txt$numerotableau-$compteur.txt$numerotableau-$compteur.htmlindex-$numerotableau-$compteurbigramme-$numerotableau-$compteur$nbmotif
$compteur$ligneCode_http:$coderetour$encodage$vraiencodageUTF-8$numerotableau-$compteur.html$numerotableau-$compteur.txt$numerotableau-$compteur.txt$numerotableau-$compteur.htmlindex-$numerotableau-$compteurbigramme-$numerotableau-$compteur$nbmotif
$compteur$ligneCode_http:$coderetour----------

" >> "./TABLEAUX/tableau.html" ; #On incrémente le compteur de tableaux (dans le cas où on traite plusieurs langues) numerotableau=$((numerotableau+1)); done #On ferme les balises de la page echo "" >> "./TABLEAUX/tableau.html" ;