Script en détail
01.01.2018
#!/bin/bash
motifchoix(){
# attention mon fichier minigrep est au repertoire supérieur de projetencadre
perl ../minigrep/minigrepmultilingue.pl "UTF-8" ./DUMP-TEXT/$compteurtable-$compteur-utf8.txt $chemin
mv ./resultat-extraction.html ./CONTEXTES/$compteurtable-$compteur-utf8.html;
fq=$(egrep -o "$short_motif" ./DUMP-TEXT/$compteurtable-$compteur-utf8.txt|wc -l);
egrep "$short_motif" ./DUMP-TEXT/$compteurtable-$compteur-utf8.txt > ./CONTEXTES/$compteurtable-$compteur-utf8.txt;
}
iconvtesting(){
ml="";
inlisticonv="";
inlisticonv=$(iconv -l | egrep -io "$isthereacharset");
echo $isthereacharset;
if [[ "$inlisticonv" == "" ]]; then #do nothing
echo "sorry can't help";
echo -e "<tr><td>$compteur</td><td>$isthereacharset</td><td>$status1</td><td><a href=\"$ligne\">$ligne</a></td><td><td>$status2</td><a href=\"../PAGES-ASPIREES/$compteurtable-$compteur.html\">Page aspiree</a></td><td>-</td><td align=\"center\"><a href="">---</a></td><td align=\"center\"><a href="">---</a>-</td><td>-</td></tr>\n" >>$tablo;
else
for i in $inlisticonv; do
ml=$i
break
echo $ml;
done
lynx -dump -nolist -assume_charset=$ml -display_charset=$ml $ligne > ./DUMP-TEXT/$compteurtable-$compteur.txt;
iconv -f $ml -t UTF-8//TRANSLIT < ./DUMP-TEXT/$compteurtable-$compteur.txt >./DUMP-TEXT/$compteurtable-$compteur-utf8.txt;
if [[ "$fichier" == "urlsfile" ]]; then
chemin="./PROGRAMMES/motif.txt";
short_motif="\b绿色能源|水能|生物能|太阳能|风能|地热能|海洋能|可再生能源\b";
motifchoix;
fi
if [[ "$fichier" == "url_fr" ]]; then
chemin="./PROGRAMMES/motif_fr.txt";
short_motif="\b(énergies vertes)|(\w+ vert(s)?)|(\w+ verte(s)?)|hydroélectricité|renouvelable(s)|solaire|éolienne|hydraulique|Biomasse|géothermique\b";
motifchoix;
fi
if [[ "$fichier" == "url_es" ]]; then
chemin="./PROGRAMMES/motif_es.txt";
short_motif="\b(energía(s)? verde(s)?)|(\w+ verde(s)?)|energía|renovable(s)?|hidráulica|(solar térmica)|Biomasa|solar|eólica|geotérmica|mareomotriz\b";
motifchoix;
fi
echo -e "<tr><td>$compteur</td><td>$isthereacharset</td><td>$status1</td><a href=\"$ligne\">$ligne</a></td><td><td>$status2</td><a href="../PAGES-ASPIREES/$compteurtable-$compteur.html">Page aspiree $compteurtable-$compteur</a></td><td><a href="../DUMP-TEXT/$compteurtable-$compteur-utf8.txt" >Dumped-txt $compteurtable-$compteur-utf8</a></td><td align=\"center\"><a href="../CONTEXTES/$compteurtable-$compteur-utf8.txt">CONTEXTE n°$compteurtable-$compteur-utf8</a></td><td align=\"center\"><a href="../CONTEXTES/$compteurtable-$compteur-utf8.html">CONTEXTE n° $compteurtable-$compteur-utf8</a></td><td>$fq</td></tr>\n" >>$tablo;
fi
}
#Lecture des paramètres dans le fichier parametres
read rep ;
read tablo ;
echo -e "<html>\n<head>\n<meta charset=\"utf-8\">\n<title>Mes liens</title>\n</head>\n<body>\n<table border=\"1\">" > $tablo;
compteurtable=0;
for fichier in $(ls $rep)
{
let "compteurtable=compteurtable+1";
echo "<p align=\"center\"><hr color=\"blue\" width=\"80%\"/> </p>" >> $tablo ;
echo "<table border = \"1\" align= \"center\">" >>$tablo;
echo "<tr><td colspan=\"11\" align=\"center\">tableau n° $compteurtable</td></tr>" >> $tablo ;
echo "<tr><td align=\"center\"><b>N°</b></td><td align=\"center\"><b>original-encoding</b></td><td align=\"center\"><b>CODE CURL</b></td><td align=\"center\"><b>lien</b></td><b>STATUT CURL</b></td><td align=\"center\"><b>Page Aspirée</b></td><td align=\"center\"><b>DUMP UTF-8</b></td><td align=\"center\"><b>CONTEXTE UTF-8</b></td><td align=\"center\"><b>CONTEXTE HTML UTF-8</b></td><td align=\"center\"><b>Fq MOTIF</b></td></tr>" >> $tablo;
compteur=0;
for ligne in $(cat $rep/$fichier)
{
let "compteur=compteur+1";
status1=$(curl -sI $ligne | head -n 1);
status2=$(curl -L --silent --output ./PAGES-ASPIREES/$compteurtable-$compteur.html --write-out "%{http_code}" $ligne);
encodage1=$(curl -sIL $ligne | egrep -i "charset=" | cut -d"=" -f2| tr 'a-z' 'A-Z'|sed -r s'/[ \n\r]//g');
encodage="";
isthereacharset="";
for el in $encodage1; do
encodage=$el
done
echo $encodage;
if [[ "$encodage" == "UTF-8" ]]; then
echo "---------------------------------";
lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $ligne > ./DUMP-TEXT/$compteurtable-$compteur-utf8.txt;
if [[ "$fichier" == "urlsfile" ]]; then
chemin="./PROGRAMMES/motif.txt";
short_motif="\b绿色能源|水能|生物能|太阳能|风能|地热能|海洋能|可再生能源\b";
motifchoix;
fi
if [[ "$fichier" == "url_fr" ]]; then
chemin="./PROGRAMMES/motif_fr.txt";
short_motif="\b(énergies vertes)|(\w+ vert(s)?)|(\w+ verte(s)?)|hydroélectricité|renouvelable(s)|solaire|éolienne|hydraulique|Biomasse|géothermique\b";
motifchoix;
fi
if [[ "$fichier" == "url_es" ]]; then
chemin="./PROGRAMMES/motif_es.txt";
short_motif="\b(energía(s)? verde(s)?)|(\w+ verde(s)?)|energía|renovable(s)?|hidráulica|(solar térmica)|Biomasa|solar|eólica|geotérmica|mareomotriz\b";
motifchoix;
fi
echo -e "<tr><td>$compteur</td><td>$encodage</td><td>$status1</td><a href=\"$ligne\">$ligne</a></td><td><td>$status2</td><a href="../PAGES-ASPIREES/$compteurtable-$compteur.html">Page aspiree $compteurtable-$compteur</a></td><td><a href="../DUMP-TEXT/$compteurtable-$compteur-utf8.txt" >Dumped-txt $compteurtable-$compteur-utf8</a></td><td align=\"center\"><a href="../CONTEXTES/$compteurtable-$compteur-utf8.txt">CONTEXTE n°$compteurtable-$compteur-utf8</a></td><td align=\"center\"><a href="../CONTEXTES/$compteurtable-$compteur-utf8.html">CONTEXTE n° $compteurtable-$compteur-utf8</a></td><td>$fq</td></tr>\n" >>$tablo;
else
if [[ "$encodage" == "" ]]; then
if [[ -e ./PAGES-ASPIREES/$compteurtable-$compteur.html ]];then
isthereacharset=$(egrep -i -o "[^><]*meta[^><]*charset[^><]*" ./PAGES-ASPIREES/$compteurtable-$compteur.html|sed -r s'/.*(charset=.*)/\1/g'|cut -d"=" -f2 |sed -r "s/\"//g"|sed -r "s/\///g"| tr 'a-z' 'A-Z'|sed -r "s/\r//g"|sed -r "s/\n//g"|sed -r "s/ //g");
if [[ "$isthereacharset" == "" ]]; then
echo "sorry can't help---------";
echo -e "<tr><td>$compteur</td><td>-</td><td>$status1</td><td><a href=\"$ligne\">$ligne</a></td><td><td>$status2</td><a href=\"../PAGES-ASPIREES/$compteurtable-$compteur.html\">Page aspiree</a></td><td><a href="">---</a></td><td align=\"center\"><a href="">---</a></td><td align=\"center\"><a href="">---</a></td><td>---</td></tr>\n" >>$tablo;
else
iconvtesting;
fi
else
echo "sorry, no page_aspirée";
echo -e "<tr><td>$compteur</td><td>-</td><td>$status1</td><td><a href=\"$ligne\">$ligne</a></td><td><td>$status2</td><a href="">---</a></td><td><a href="">---</a></td><td align=\"center\"><a href="">---</a></td><td align=\"center\"><a href="">---</a></td><td>---</td></tr>\n" >>$tablo;
fi
else
iconvtesting;
fi
fi
}
echo -e "</table>\n">>$tablo;
}
echo -e "</body>\n</html>">>$tablo;
for fichier in $(ls ./DUMP-TEXT/)
{
if [[ $fichier =~ ^1- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./DUMP-TEXT/$fichier);
if [[ $comp1 == *"utf8"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_DUMP_1.txt;
cat ./DUMP-TEXT/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_DUMP_1.txt;
echo "</file>" >> ./TOUS_LES_DUMP_1.txt;
fi
fi
fi
if [[ $fichier =~ ^2- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./DUMP-TEXT/$fichier);
if [[ $comp1 == *"utf8"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_DUMP_2.txt;
cat ./DUMP-TEXT/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_DUMP_2.txt;
echo "</file>" >> ./TOUS_LES_DUMP_2.txt;
fi
fi
fi
if [[ $fichier =~ ^3- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./DUMP-TEXT/$fichier);
if [[ $comp1 == *"utf8"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_DUMP_3.txt;
cat ./DUMP-TEXT/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_DUMP_3.txt;
echo "</file>" >> ./TOUS_LES_DUMP_3.txt;
fi
fi
fi
}
for fichier in $(ls ./CONTEXTES/)
{
if [[ $fichier =~ ^1- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./CONTEXTES/$fichier);
if [[ $comp1 == *"txt"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_CONTEXTES_1.txt;
cat ./CONTEXTES/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_CONTEXTES_1.txt;
echo "</file>" >> ./TOUS_LES_CONTEXTES_1.txt;
fi
fi
fi
if [[ $fichier =~ ^2- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./CONTEXTES/$fichier);
if [[ $comp1 == *"txt"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_CONTEXTES_2.txt;
cat ./CONTEXTES/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_CONTEXTES_2.txt;
echo "</file>" >> ./TOUS_LES_CONTEXTES_2.txt;
fi
fi
fi
if [[ $fichier =~ ^3- ]]; then
comp1=$(echo $fichier);
comp2=$(cat ./CONTEXTES/$fichier);
if [[ $comp1 == *"txt"* ]]; then
if [[ "$comp2" != "" ]]; then
echo "<file=\"$fichier\">" >> ./TOUS_LES_CONTEXTES_3.txt;
cat ./CONTEXTES/$fichier|sed -r 's/<[^>]*>//g' | tr -d '<'| tr -d '>' >> ./TOUS_LES_CONTEXTES_3.txt;
echo "</file>" >> ./TOUS_LES_CONTEXTES_3.txt;
fi
fi
fi
}