[gull] Truc et astuces: Modifier plusieur fichier avec sed
Cédric Bouvier
cbouvi at gmail.com
Mon Jul 23 14:53:54 CEST 2012
Le Monday 23 July 2012, à 14 heures 33, Félix Hauri écrivait :
> Soit une liste de fichier de languages en javascript:
>
> $ ls lang.*.js
> lang.de.js lang.en.js lang.fr.js lang.it.js ...
>
> qui contiennent une chaine par ligne encadrée par des guillemets et qui
> sont parfoit en utf-8, parfois en html.
>
> Le but est de les convertir toutes en html, mais pour chacun des fichiers.
> (lancer recode directement sur les fichier .js n'est pas une bonne idée ;)
>
> Je m'en suis tiré avec:
> $ for file in lang.*.js ;do
> echo $file:
> cat $file |
> recode -f u8..flat |
> diff $file -
> done |
> env LANG=C sed -ne '
> /^lang.*js:$/{h};
> /^</{x;G;s/:\n< .*"\(.*\)".*$/\t\1/;p;s/\t.*$/:/;x;}
> ' |
> while read file string;do
> printf "sed -i '%s' -e 's/%s/%s/'\n" $file "$string" "$(
> echo $string|recode u8..html)"
> done |
> sed 's/\&/\\\&/g'
>
> sed -i 'lang.de.js' -e 's/Hinzufügen/Hinzuf\ügen/'
> sed -i 'lang.de.js' -e 's/Geändert/Ge\ändert/'
> sed -i 'lang.fr.js' -e 's/Création/Cr\éation/'
>
> ... Que je peux piper vers sh (`` | /bin/sh '') après vérification.
>
>
> --
> Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull
Je ne suis pas sûr d'avoir tout compris, mais il doit y avoir plus
simple, non ?
(apt-get install libhtml-parser-perl)
perl -MHTML::Entities -Cio -pi.bak -e '$_=encode_entities($_, "\200-\377")' *.js
--
C é d r i c B o u v i e r
More information about the gull
mailing list