J'essaie de remplacer tous les symboles £
dans un fichier HTML avec £
. Mon expression régulière ne semble pas fonctionner.Comment puis-je remplacer tout £ dans un fichier avec £ avec Perl?
Pourriez-vous m'aider s'il vous plaît?
J'essaie de remplacer tous les symboles £
dans un fichier HTML avec £
. Mon expression régulière ne semble pas fonctionner.Comment puis-je remplacer tout £ dans un fichier avec £ avec Perl?
Pourriez-vous m'aider s'il vous plaît?
Cela devrait fonctionner,
#!/usr/bin/perl
# File: convert.pl
no utf8; # its not required
while (<>) {
s/(\xa3)/pound/g;
print;
}
puisque £
a montré comme 0xA3
sur mon hexdump.
Mais, il en sera
#!/usr/bin/perl
while (<>) {
s/£/pound/g;
print;
}
Il suffit de dire
chmod a+x convert.pl
convert.pl yourfile.html > newfile.html
Vous avez très probablement oublié de:
use utf8;
Essayez le programme suivant:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
while (<DATA>) {
s/£/£/g;
print
}
__END__
This is sample text with lots of £££!
50£ is better than 0£.
Si vous voulez lire à partir d'un fichier nommé input
et écrire dans un fichier nommé output
:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
open my $input, '<', 'input' or die $!;
open my $output, '>', 'output' or die $!;
binmode $input, ':utf8';
while (<$input>) {
s/£/£/g;
print $output $_;
}
Pourquoi '& pound;' et pas seulement '£' dans la substitution? Si vous utilisez & il apparaîtra comme £ au lieu de £ dans le navigateur. –
@Lars Haugseth: La question a été éditée plus tard pour changer '& livre;' à '£'. J'ai modifié ainsi. Merci de me le faire savoir. :-) –
@Krish: Désolé, je n'ai pas compris ce que vous essayez de faire. S'il vous plaît, expliquez. –
perl -i.bak -ne 's/£/£/g; print $_' file
Vous devriez utiliser l'option -p au lieu de -n si vous imprimez juste à la fin. 'perl -i.bak -pe 's/£/& pound/g' fichier' –
Montrez ce que vous avez essayé cela ne fonctionne pas pour que les gens puissent voir ce qui se passait mal et vous aider? – ysth
Vous continuez à demander "Quel est le problème" dans les commentaires, mais personne ne peut vous le dire puisque vous n'avez pas dit ce que vous avez fait. Essayez-vous de le faire dans Vim? Si c'est le cas, comment_? Essayez-vous de le faire en utilisant Perl? Si c'est le cas, comment_? – Telemachus
Désolé son mitake, avant que j'insère d'autres commentaires et le supprime. Le problème est maintenant levé – joe