Perl 대량 Copyright 저작권 정보 추가
다음 프로그램을 사용하기 시작합니다(전천만 번 전에 입력한 파일을 백업해 보십시오).
#!usr/bin/perl -w
$^I = ".bak";
my %do_these;
foreach (@ARGV){
print $_;
$do_these{$_} = 1;
}
while(<>){
if(/^## Copyright/){
delete $do_these{$ARGV};
}
}
@ARGV = sort keys %do_these;
while(<>){
if(/^#!/){
$_ .= "## Copyright (C) 2011 by yujianjun";
}
print;
}
결과: 원본 파일과 백업 파일이 모두 공백 상태여서 정말 엉망이었다.(나중에 프로그램을 테스트할 때 백업을 잘 해야 한다는 것을 명심하세요.)분석 원인:
주로 $^I 사용 오류 때문입니다.먼저 $^I의 운영 원리에 대해 살펴보겠습니다.
$^I 기본값 undef, 프로그램에 영향을 주지 않습니다.프로그램의 ".bak"와 같은 문자열로 값을 지정하면 프로그램은 백업 작업을 수행하고 이 문자열을 원래 파일 이름 뒤에 추가해서 백업 파일 이름의 확장자가 됩니다.다이아몬드 조작부호를 사용하여 파일을 열 때perl의 작업은 먼저 열린 파일 이름을 확장자가 붙은 파일 이름으로 바꾸고 원래의 파일 이름의 파일을 새로 만든 다음 프로그램 줄에서 파일 내용을 읽고 변경한 후에 새 문서에 저장하는 것입니다.이렇게 하면 파일 내용을 수정하고 오래된 파일을 백업한 셈이다.물론, 값이undef이면 오래된 파일을 백업하지 않습니다.
위의 프로그램에서 $^I =".bak"를 사용합니다.맨 앞에 놓지만 뒤에 두 번의 파일 읽기 작업이 있습니다.파일을 파일로 읽는 것을 가정합니다.pl, 처음 while(<>)에서 원본 파일을 파일로 변경했습니다.pl.bak.그리고 새 빈 파일을 파일로 명명합니다.pl;그러나 새 파일은 프로그램이 끝날 때만 디스크에 기록되기 때문에 다음 두 번째 파일 읽기 작업while (<>) 을 할 때 공백 파일이 됩니다.pl이 파일로 바뀝니다.pl.bak, 이렇게 하면 첫 번째 백업 파일을 덮어쓰고 새 공백 파일 파일을 만들 수 있습니다.pl, 이때 원본 파일과 백업 파일을 포함한 내용이 공백입니다.
$^I의 작업 원리를 이해하면 프로그램은 쉽게 수정할 수 있다.
$^I =".bak";마지막 파일 읽기 작업인 while(<>) 이전에는 다음과 같이 하십시오.
#!usr/bin/perl -w
my %do_these;
@ARGV = ("sinx.pl","nvidia.pl","changeName.pl");
foreach (@ARGV){
print $_;
$do_these{$_} = 1;
}
while(<>){
if(/^## Copyright/){
delete $do_these{$ARGV};
}
}
@ARGV = sort keys %do_these;
$^I = ".bak";
while(<>){
if(/^#!/){
$_ .= "## Copyright (C) 2011 by yujianjun";
}
print;
}
이렇게 하면 기본적으로 된다. 여러분은 필요에 따라 스스로 수정할 수 있다.많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cowsay로 현장 고양이에 요시! 되고 싶은 건업무 중에도 현장 고양이에 요시! 하고 싶었기 때문에, cowsay 를 사용해 어떻게든 해 보았습니다. cowsay는 말할 것도없이 오징어 한 서버에 적합한 매혹적인 도구입니다. 살벌한 우리 마음에 일복의 청량을 줍...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.