Outils pour utilisateurs

Outils du site


convertir_un_nom_de_fichier

Convertir un (non de) fichier

Jeu de caractères d'un fichier texte

Identifier le jeu de caractères d'un fichier

$ file -bi [filename]

Convertir un fichier d'un jeu de caractères à un autre

$ iconv -f <from-charset> -t <to-charset> <input-file> > <output-file>
$ iconv -f ISO-8859-1 -t UTF-8 entree.txt > sortie.txt

En laissant le logicile deviner l'encodage d'orginie

$ recode  <to-charset> <input-file>
$ recode UTF-8 mon-fichier.txt

Fin de ligne

Principe

La fin de ligne peut être symbolisée de 3 manières (man:dos2unix) :

  • Line Feed, LF, 0x0A, déc 10, standard Unix-like
  • Carriage Return, CR, 0x0D, déc 14, standard MacO$ 9
  • Carriage Return + Line Feed, CRLF, standard M$-DOS, Windows$

La commande file indique également la manière dont la fin de ligne est symbolisée. Aucune indication signifie que le fichier utilise le format Unix standard.

Convertir les fins de lignes

Le paquetage dos2unix apporte les commandes : dos2unix, unix2dos, mac2unix, unix2mac. Typiquement :

$ dos2unix -n fichier_dos.txt new_unix.txt

Le man de dos2unix explique comment combiner le changement de fin de ligne avec des changement de jeu de caractères.

Convertir le jeu de caractères d'un nom de fichier

$ convmv -f <from-charset> -t <to-charset> <fichier>

Peut s'appliquer à des répertoires entiers.

Nettoyer un nom de répertoire ou de fichiers

Que faire quand on se retrouve avec un fichier (ou répertoire) dont le nom n'est pas reconnu par les commandes usuelles (cp, mv, etc.) ? Ça peut arriver en dézippant une archive zip créée sous Window$, par exemple…

La commande detox fait ça très bien et même plus1). De plus, elle opère récursivement. Ainsi :

$ detox mydir*

nettoiera récursivement le répertoire dont le nom commence par “mydir”

Si le nom de répertoire (fichier) est tellement “pourri” que vous ne parvenez pas à le nommer, on peut utiliser son numéro d'inode que l'on récupère par la commande ls.

$ ls -i              // affiche les n° d'inodes
$ find . -inum XXXXX -exec detox {} \;       // où XXXX est le n° d'inode à nettoyer
1)
Comme enlever les espaces.
convertir_un_nom_de_fichier.txt · Dernière modification: 2017/03/21 15:53 par flaz