, 나는 단순히 첫 번째 줄 변경할 것 : 나는이 .pl와의 연결을 만든 창에 ActiveState의 펄을 사용하여Windows에서 perl로 in-place 편집 (-i)을 수행하려면 어떻게해야합니까? 유닉스/리눅스 버전에서
#!perl -i.bak
을, 나는에서 직접 Perl 스크립트를 실행할 수 있습니다 명령 행
myScript.pl
기본 연결을 계속 사용하려면 어떻게 파일을 편집 할 수 있습니까?
, 나는 단순히 첫 번째 줄 변경할 것 : 나는이 .pl와의 연결을 만든 창에 ActiveState의 펄을 사용하여Windows에서 perl로 in-place 편집 (-i)을 수행하려면 어떻게해야합니까? 유닉스/리눅스 버전에서
#!perl -i.bak
을, 나는에서 직접 Perl 스크립트를 실행할 수 있습니다 명령 행
myScript.pl
기본 연결을 계속 사용하려면 어떻게 파일을 편집 할 수 있습니까?
트릭 질문과 같은 소리가 들리고, 나는 당신을 올바르게 이해하고 있는지 궁금합니다.
perl -pi.bak myScript.pl myfiletochange
그냥 perl을 호출하고 스위치와 스크립트 이름을 제공하면됩니다.
이제 이러한 추가 인수를 제공하지 않을 수도 있습니다. 그렇다면 the variable $^I
을 설정하면 바로 편집 할 수 있습니다. 예 :
$^I = ".bak"; # will set backup extension
: 백업을 만들려면
sub edit_in_place
{
my $file = shift;
my $code = shift;
{
local @ARGV = ($file);
local $^I = '';
while (<>) {
&$code;
}
}
}
edit_in_place $file, sub {
s/search/replace/;
print;
};
다음 변경을 local $^I = '';
에 local $^I = '.bak';
없음 트릭 - 기술적이지 않은 사용자를위한 스크립트를 작성하고 자체 포함 시키려합니다. 감사. – chris
@chris 기술적이지 않은 사용자는 스크립트가 백업을 저장하는 동안 원본 파일에서 스크립트를 계속 사용할 때마다 해당 백업을 덮어 씁니다. – TLP
예. 일회성 일입니다. – chris