8 votes

Comment convertir un fichier texte en minuscules sous UNIX (mais en UTF-8)

Je dois convertir tout le texte en minuscules, mais pas en utilisant la commande traditionnelle "tr" car elle ne gère pas correctement les langues UTF-8.

Y a-t-il un moyen agréable de le faire ? J'ai besoin d'un filtre UNIX pour pouvoir traiter ceci dans un pipe.

15voto

aioobe Points 158466

Gnu sed devrait être capable de gérer l'unicode. Essayez

$ echo 'Some StrAngÉ LeTTeRs 123' | sed -e 's/./\L\0/g'
some strangé letters 123

3voto

Michał Niklas Points 15907

Si vous pouvez utiliser Python, ce code peut vous aider :

import sys
import codecs

utf8input = codecs.getreader("utf-8")(sys.stdin)
utf8output = codecs.getwriter("utf-8")(sys.stdout)

utf8output.write(utf8input.read().lower())

Sur ma machine Windows (désolé :), je peux l'utiliser comme filtre :

cat big.txt | python tolowerutf8.py > lower.txt3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X