2009-02-23 3 views
5

Comment allez-vous traduire un document qui contient les références de caractères suivantes à leurs caractères lisibles dans un script bash?Remplacez les références de caractères HTML par utf-8 dans un script bash. ā devient

ā á ǎ à ē é ě è ī í ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü 

Ces changements afin de å á ǎ à è é è è ı ı ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü

+0

stackoverflow permet aux entités HTML. Je pourrais vouloir éditer ça. –

+0

Ma première réponse est d'utiliser sed, si ce sont juste ces entités. Le remplacement direct devrait être possible de cette façon. Si vous voulez que cela fonctionne pour des entités arbitraires, alors je ne peux pas penser à quelque chose de désinvolte (je ne suis pas une personne majeure, malheureusement). –

Répondre

3

Si vous avez accès à Perl alors il est relativement simple:

perl -ne 'binmode STDOUT,":utf8";s/&#([0-9]*);/pack("U",$1)/eg;print' \ 
    document.html 

Exemple:

#!/bin/bash 
html2utf8() { 
    perl -ne 'binmode STDOUT, ":utf8"; s/&#([0-9]*);/pack("U",$1)/eg; print' 
} 
echo 'testing 1 ā 2 Ĭ 3 ē' | html2utf8 

Produit:

testing 1 ā 2 Ĭ 3 ē 
+0

Oui, j'ai accès à perl donc c'est probablement la façon la plus simple et la plus pratique de le faire. Honnêtement, l'ensemble du projet serait mieux scipted perlée de toute façon –

Questions connexes