Script en détail

01.01.2018

Lien vers le script

#!/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></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
}