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
La fin de ligne peut être symbolisée de 3 manières (man:dos2unix) :
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.
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.
$ convmv -f <from-charset> -t <to-charset> <fichier>
Peut s'appliquer à des répertoires entiers.
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