Utilisateur:Vincent Ramos/Scripts

Convertisseur de texte utf-8 en latin-1 avec entités html pour les pages de Wikipédia

modifier

Ceci étant mon premier script, merci de votre indulgence. Il m'est cependant bien pratique, et pouvant l'être pour d'autres éditeurs, je pense utile de le rendre public.

#!/bin/sh 
# Ce script convertit un fichier texte utf-8 en latin-1. Il conserve les caractères non inclus dans latin-1 en les transformant en
# entités html. Le résultat obtenu peut être directement collé dans une page de Wikipédia dont le jeu de caractères est 
#latin-1. Recode doit être installé pour que le script fonctionne, disponible ici <http://recode.progiciels-bpi.ca/>.
#Auteur de ce modeste script : Vincent Ramos <siva-nataraja(à)alussinan.org>.
#License : GNU.

#Se placer par défaut sur le bureau.
cd ~/Desktop

echo -n "Nom du fichier à convertir : "
read fichier

#Si le nom du fichier à convertir représente un fichier existant et si la chaîne tapée n'est pas vide, le script propose 
#plusieurs possibilités.
if [ -f $fichier ] && [ -n "$fichier" ] ;
	then
		echo -n "Écraser le fichier (oui par défaut) ? "
		read reponse
			case $reponse in
				non)
#Si l'on ne désire pas écraser le fichier d'origine, un fichier « sortie_wiki.txt » sera crée.
					fichier2=sortie_wiki.txt;;
				oui)
					fichier2=$fichier;;
				*)
#Toute absence de réponse valide (dont l'absence de réponse pure) est interprétée comme un « oui ». 
					fichier2=$fichier;;
			esac
#D'abord, le fichier est recodé depuis utf-8 vers html, les caractères non ASCII devenant des entités html.
		recode -i ..html < $fichier > temp.txt
#Ensuite, on repasse à utf-8. L'option -d de recode permet de ne convertir que les caractères propres à latin-1. De sorte, le 
#fichier d'arrivé ne contient, comme entités numériques, que celles qui sont exclues de latin-1.
		recode -d -i html..u8 < temp.txt > $fichier2
#Un peu de maintenance : on se débarrasse des fichiers temporaires.
		rm temp.txt
		echo "Opération correctement effectuée."
	else 
	
#Si le nom de fichier indiqué au départ n'est pas valide ou bien est nul, le script recherche un fichier « wiki.txt ». Cela permet 
#d'accélérer les opérations : il suffit d'utiliser par défaut un fichier portant ce nom pour éviter de l'entrer à l'invite.
		echo "Fichier introuvable ! Utilisation de « wiki.txt » avec remplacement par défaut."
		if [ -f "wiki.txt" ] ;
			then
				recode -i ..html < wiki.txt > temp.txt
				recode -d -i html..u8 < temp.txt > wiki.txt
				rm temp.txt
				echo "Opération correctement effectuée."
			else 
#S'il n'existe cependant pas de fichier « wiki.txt », le script l'indique sans n'avoir pu modifier quoi que ce soit.
				echo "Impossible de parachever l'opération : aucun fichier accessible."
		fi	
fi

Correcteur d'espaces insécables

modifier
#!/bin/sh
#Ce simple script permet de corriger les documents (dont de nombreuses pages de Wikipédia) 
#dans lesquels les espaces insécables ont été remplacées par des espaces justifiantes 
#simples, pour des raisons diverses. La plupart du temps, il s'agit de documents traités
#par un logiciel bogué (de nombreux navigateurs le sont sur ce point) qui a détruit les
#insécables en question.
#Auteur : Vincent Ramos.
#Licence : GNU

cd ~/Desktop
#On se place par défaut sur le bureau.

echo -n "Nom du fichier à traiter : "
read fichier

#S'il n'existe pas de fichier ou l'utilisateur n'entre rien, le script ne modifie rien. 
#Dans le cas contraire, il écrasera le fichier par la version corrigée.

if [ -f $fichier ] && [ -n "$fichier" ] ; 

	then
		replace " ;" "²;" " :" "²:" " ?" "²?" " !" "²!" "« " "«²" " »" "²»"< $fichier > temp.txt
#Pour des raisons de sécurité, les espaces insécables, qui pourraient être détruites par le navigateur, 
#sont remplacées ici par le caractère <²> qu'il conviendra de corriger avant d'utiliser le script, par 
#un « replace "²" "<insérer une espace insécable>" -- <nom du script> », par exemple.

		mv temp.txt $fichier
		
		echo "Opération correctement effectuée."
	else
		echo "Aucun fichier à traiter."
fi