저는 프로젝트의 모든 소스 파일에서 일부 텍스트를 대체하기 위해 Perl 스크립트를 코딩하려고했습니다. 내가 좋아하는 뭔가를 필요로 해요 :대량 파일 텍스트 대체를 간단하게 수행 할 수 있습니까?
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" *.{cs,aspx,ascx}
하지만 그 디렉토리 재귀의 모든 파일을 구문 분석합니다.
난 그냥 스크립트 시작 :use File::Find::Rule;
use strict;
my @files = (File::Find::Rule->file()->name('*.cs','*.aspx','*.ascx')->in('.'));
foreach my $f (@files){
if ($f =~ s/thisgoesout/thisgoesin/gi) {
# In-place file editing, or something like that
}
}
을하지만 지금은 갇혔어요. Perl을 사용하여 모든 파일을 편집 할 수있는 간단한 방법이 있습니까?
수정 된 모든 파일의 사본을 보관할 필요가 없습니다. 난이 그들을 모두 subversioned =)
업데이트 : 나는, Cygwin에
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" {*,*/*,*/*/*}.{cs,aspx,ascx
을이 시도하지만 내 인수 목록이 허용되는 최대 크기로 폭발 것 같습니다.
find . -name '*.{cs,aspx,ascx}' | xargs perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi"
이 모든 파일 이름을 나열합니다 재귀, 다음 xargs
표준 입력을 읽고 나머지를 실행합니다 : 사실, 나는
Windows가 실행 중임을 유의해야합니다. –