2013-05-19 2 views
0

내가 현재 자동 삭제를위한 영역 파일을 통해 정렬 작업이 ..

작동하는

perl -i -ne 'print unless (/#$DOMAINNAME/ and \$n=7) .. not \$n--' named.conf.ext

(탈출 n을 내가 다른 생각, 필요는 생각했다 계산 주 스크립트에 전달할 변수가 있습니까?)

이 호출은 perl 스크립트 내에서 발생합니다.이 호출은 perl 스크립트에서 perl 스크립트를 다시 실행하기 위해 쉘을 호출 할 필요가 없으므로이를 정리하고 싶습니다. 그리고 주된 스크립트가 그것을하는 것을 가지고있다.

회원님이 가능성이 말할 수 :) 내가

open (DATAIN, "<named.conf.ext"); 
open (DATAOUT, "> named.conf.tmp"); 
while (<DATAIN>){ 
    PRINT unless (/#foo.com/ and $n=7) .. not $n-- DATAOUT; 
} 
close DATAOUT; 
close DATAIN; 

몇 변종 같은 것들을 시도하지만 테스트 라인 4, 근처에 구문 오류가 불평 여기에 펄 전문가 "- DATAOUT"

나는 이것에 공간이있어, 대답은 내 앞에서지만, 2 일, 나는 두뇌가 킥 스타트가 필요하다고 생각한다.

감사

+0

'unless'의 조건을 이해할 수 없지만'DATAOUT'은'line'의 끝이 아니라'print'와'unless' 사이에 있어야합니다. –

답변

2

너무

print DATAOUT $_; 

당신이

print DATAOUT unless (/#foo.com/ and $n=7) .. not $n--; 

원하는 정상적으로 짧은

print DATAOUT; 

의 또는 이상

+0

나는 어떻게 든 당신이 잘못 인쇄 된 것을 알아 채지 못했고 철자를 복사했습니다! 결정된. – ikegami

+0

감사! 그걸 해결 했으니, 나는 모든 조합을 시도했다고 생각했기 때문에 어떻게 그것을 놓쳤는 지 모른다. 내 잘못, 다시 한 번 감사드립니다! – Nobby6

+0

답변에 만족하면 옆에있는 표시를 확인하십시오. 스택 오버플로에 오신 것을 환영합니다! – ikegami