Formation PUB110 : Linux, 2018 Travailler avec les fichiers

4.6 Encodage des fins de lignes (CRLF vs LF)


Dans cette fiche :

▼Publicité Le texte se poursuit plus bas

Réponse courte : comment configurer les caractères de fin de ligne sous Geany

Sous Windows, macOS ou Linux, il est possible de modifier les caractères de fin de ligne à l'aide de l'éditeur Geany.

Rendez-vous dans le menu Document / Définir les fins de ligne et choisissez l'option qui vous convient.

Convertir les CRLF en LF

Réponse détaillée

Les fins de lignes sont marquées de façon différente sous Windows et sous macOS ou Linux.

Windows utilise deux caractères pour marquer les fins de lignes : retour de chariot (Carridge Return ou CR) suivi de nouvelle ligne (Line Feed ou LF).

Sous Linux et sous macOS, les sauts de ligne sont encodés seulement avec LF (les anciennes versions de Mac utilisaient CR mais il y a longtemps que ce n'est plus le cas).

Lorsque vous travaillez sous Linux, l'utilisation d'un fichier avec des fins de ligne encodées avec CRLF peut causer toutes sortes de problèmes.

Par exemple, si vous tentez d'exécuter un fichier bash avec un encodage de fins de ligne à la Windows, vous pourriez obtenir le message suivant :

Résultat à l'écran

/bin/bash^M: bad interpreter: No such file or directory

Vérifier les caractères de fin de ligne

Les techniques pour vérifier quels caractères de fin de ligne sont utilisés dépendent de votre système d'exploitation.

Windows, macOS ou Linux avec Geany

Avec l'éditeur Geany, vous pouvez aller dans le menu Éditer / Préférences / Éditeur / Affichage. Cochez Afficher les fins de ligne.

Vous verrez ceci :

Affichage CR et LF

macOS ou Linux en ligne de commande

Pour vérifier quels caractères sont utilisés pour marquer les fins de ligne, vous pouvez utiliser la commande file sur un système Linux ou macOS.

Terminal

file monfichier.sh

Si le fichier utiliser CRLF, vous obtiendrez un résultat semblable à ceci :

Résultat à l'écran

monfichier.sh: Bourne-Again shell script, UTF-8 Unicode text executable, with CRLF line terminators

Dans le cas où les fins de ligne sont correctement encodées avec LF, vous obtiendrez plutôt ceci :

Résultat à l'écran

monfichier.sh: Bourne-Again shell script, UTF-8 Unicode text executable

La commande cat avec l'option -v vous permettra de voir les caractères de fins de ligne mal encodés. Cette commande fonctionne sous macOS ou Linux.

Terminal

cat -v monfichier.sh

Si une fin de ligne est marquée par CRLF, elle apparaîtra sous la forme ^M.

Résultat à l'écran

#!/bin/bash^M

Convertir les caractères de fins de ligne

Geany peut convertir les caractères de fins de ligne selon vos préférences.

Ici encore, les techniques disponibles dépendent de votre système d'exploitation.

Window, macOS ou Linux avec Geany

Sous Windows, macOS ou Linux, rendez-vous dans le menu Document / Définir les fins de ligne et choisissez l'option qui vous convient.

Convertir les CRLF en LF

macOS ou Linux en ligne de commande

Sous macOS ou Linux, plusieurs utilitaires en ligne de commande permettent également d'effectuer la conversion.

Par exemple, vous pouvez entrer cette commande pour convertir les sauts de ligne CRLF en LF.

Prenez soin d'ajuster la commande : changez fichierCRLF.sh pour le nom du fichier original et fichierLF.sh pour le nom du fichier converti.

Terminal

perl -pe 's/\r$//g' < fichierCRLF.sh > fichierLF.sh

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre