2014-04-10 7 views
0

이 같은 디렉토리에있는 모든 문서를 <voice required="name = IVONA 2 Penélope">같은 디렉토리에있는 모든 파일을 단어로 바꾸시겠습니까?

<voice required="name = VW Julie">

<español>에 알에게 태그

<english>의 인스턴스를 변경하는 펄있는 방법입니다.

이 textaloud을 위해, 그래서 다른 목소리 컴퓨터 변화는 언어

내가 grep와 함께 할 수있는 변경 될 때,하지만이 설정 항상 지루합니다. 스크립트를 두 번 클릭하면 더 좋을 것입니다. 하지만 어떻게해야할지 모르겠다. 도움이된다. 감사

+0

script.pl'내가 grep'와 함께 할 수 있습니다 - 당신은'grep'을 사용하여 파일을 조작하는 방법에 대해 우리를 계몽하십시오 . – devnull

+0

힌트 : 편리 할 수있는 연산자's'가 있습니다. RTFM, 즉 [Read The Fantastic Manual] (http://perldoc.perl.org) – devnull

+0

나는 컴퓨터에서 내 친구가 아니지만 powergrep을 사용하면 폴더 (. *) ()를 선택할 수 있습니다. (. *)는 \ 1 \ 3을 대체합니다. 내가 과시하려한다고 생각 했습니까? – alex

답변

1

이 윈도우에서 작동해야,

use utf8; 
BEGIN { @ARGV = glob("@ARGV\\*"); } 
s/<english>/<voice required="name = VW Julie">/g; 
s/<español>/<voice required="name = IVONA 2 Penélope">/g; 

perl -i~ -p script.pl C:\Path\to\files 
0

당신은 할 수 : 유닉스 쉘 명령을 다음

$ cd /PATH/TO/DIRECTORY 
$ perl -i -pe -Mutf8 's/<english>/<voice required="name = VW Julie">/g' * 
$ perl -i -pe -Mutf8 's/<español>/<voice required="name = IVONA 2 Penélope">/g' * 
+0

덕분에, 나는 능동적 인 펄을 사용하고있다. – alex

+0

예, 그렇다면 무엇입니까? 커맨드 터미널에서 커맨드 터미널에서 커맨드를 실행해야합니다. 커맨드 터미널은 기본적으로 PATH에서 활성화되지 않은 경우 perl의 전체 경로와 함께 실행되어야합니다 :'C :/Program/Files/Active \ Perl/bin/perl -i -pe -Mutf8///g '*' –

0

를 Ths 그것을 수행해야합니다

perl -Mutf8 -pie 's/\<english\>/<voice required="name = VW Julie">/g; s/\<español\>/<voice required="name = IVONA 2 Penélope">/g' DIRECTORY/* 

-e 옵션은 다음 인수에 명령을 실행하기 위해 펄을 알려줍니다. -p은 명령 다음에 각 입력 행의 루프에서 명령을 실행하고 $_을 출력합니다. 그리고 -i 옵션은 입력 파일을 출력으로 바꾸라고 지시합니다.

Windows 명령 프롬프트에서도 작동 할 것이라고 가정하지만 Windows에서는 Perl을 사용한 적이 없습니다.

+0

.pl 문서에서 작성한 내용을 다른 문서와 같은 폴더에 저장하고 두 번 클릭하면 pl 파일 하지만 작동하지 않았다, 내가 뭘 잘못하고있어? – alex

+0

그것은 쉘 명령이지 perl 스크립트가 아닙니다. perl이 논점에있다. – Barmar

+0

쉘 명령이란 무엇인지 이해하지 못한다. 그러나 나는 ms-dos에 대해 뭔가 생각하거나 모르겠다. 펄과 더 편할 것이라고 생각했다. 하지만 시간 내 주셔서 감사합니다. – alex

관련 문제