2009-07-06 4 views
-2

HTML 파일의 £ 기호를 모두 £으로 바꾸려고합니다. 내 정규식이 작동하지 않는 것 같습니다.£의 파일에있는 모든 £를 Perl로 대체하려면 어떻게해야합니까?

도와 주시겠습니까?

use utf8; 

다음 프로그램을 시도해보십시오 :

+1

쇼? – ysth

+0

당신은 코멘트에서 "What is the issue"를 묻지 만, 아무도 당신이 한 일을 말하지 않았기 때문에 아무에게도 말할 수 없습니다. Vim에서 이것을하려고합니까? 그렇다면 _how_? Perl을 사용하여이 작업을 수행하려고합니까? 그렇다면 _how_? – Telemachus

+0

미안 해요, 그 전에 다른 의견을 삽입하고 그것을 삭제 mitake. 문제가 이제 해결되었습니다 – joe

답변

2

이것은 작동합니다.

#!/usr/bin/perl 
# File: convert.pl 
no utf8; # its not required 
while (<>) { 
    s/(\xa3)/pound/g; 
     print; 
} 

£이 내 헥스 덤프에 0xA3으로 표시되어 있기 때문입니다.

그러나, 그래서

#!/usr/bin/perl 
while (<>) { 
    s/£/pound/g; 
     print; 
} 

그냥 말할 것이다 그렇게 작동하지 않았다 사람들이 당신을 무엇이 잘못되었는지 볼 수 있도록 도와줍니다 뭘하려

chmod a+x convert.pl 
convert.pl yourfile.html > newfile.html 
4

당신은 대부분의 아마하려면 잊어

#!/usr/bin/perl 

use strict; 
use warnings; 
use utf8; 

while (<DATA>) { 
    s/£/&pound;/g; 
    print 
} 

__END__ 
This is sample text with lots of £££! 
50£ is better than 0£. 

당신이 input라는 이름의 파일에서 읽고 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/£/&pound;/g; 
    print $output $_; 
} 
+1

왜 '& 파운드;' 대체에 '£'이 아닌가? &을 사용하면 브라우저에 £ 대신 £으로 표시됩니다. –

+0

@Lars Haugseth : 나중에 질문을 편집하여 '& 파운드'를 '£'(으)로 변경했습니다. 나는 그렇게 편집했다. 알려 줘서 고마워. :-) –

+0

@Krish : 미안하지만, 당신이하려는 일을 이해하지 못했습니다. 설명 해주십시오. –

0
perl -i.bak -ne 's/£/&pound/g; print $_' file 
+0

끝에서 인쇄 중이라면 -n 대신 -p 플래그를 사용해야합니다. 'perl -i.bak -pe 's/£/& 파운드/g'파일' –

관련 문제