vendredi 16 novembre 2007

%0D?

Mettre wget dans un script BASh devait permettre d'automatiser la tâche d'aspiration de mes pages. J'ai écrit un script qui parcourt chaque ligne (donc adresse) du fichier d'URL, extrait chacune des pages à l'aide de wget et, dans un tableau nouvellement créé, donne un lien vers la page online et un autre vers la page aspirée.
Tout allait pour le mieux dans le meilleur des mondes jusqu'à ce que je me rende compte que script.sh (c'est son petit nom) ne faisait pas ce que je lui avais demandé:


Que se passe t-il? J'ai beau vérifier mon script encore et encore, le réécrire de A à Z, essayer avec différents fichiers d'URL... wget n'arrive pas à trouver les pages que je lui demande d'aspirer.
Mais alors que je regarde ma fenêtre Cygwin d'un peu plus près, je remarque que les URL qui apparaissent dans mon script se terminent toutes par %0D... %0D! Ce serait pas un caractère de contrôle ça? Comme celui qui permet de faire un retour chariot? Je vérifie à nouveau le fichier texte contenant mes URL: comme je m'en doutais, %0D n'apparait nul part.



Tout devient clair! Les retours à la ligne de mes fichiers textes (tapés sous Windows XP) sont interprétés différemment par Cygwin (qui émule un système UNIX). Notepad++, entre autres, permet de régler ce problème en un seul click:



Je peux maintenant relancer mon script et constater avec satisfaction que le problème est résolu:


Aucun commentaire: