2013-06-30 4 views
0

Perl에서 줄을 세는 방법을 묻고 싶습니다.두 파일의 줄을 계산하는 방법

예 :

파일

ikram 
izzul 
ibnu 
qoyyim 

문제는 펄이 파일의 모든 라인을 계산하는 방법이다 b.txt 파일

ikhsan 
faqih 
kamal 
jundi 
iqbal 

해서 a.txt.

난 그냥 사람이 내 코드를 파일을 읽으려면

은 다음과 같습니다

여기 내 data.txt로

a 
b 
c 
d 

내 코드

open (FILE, "data.txt") or die "Can't open file: $!"; 

my ($lines) = (0); 
while (<FILE>) { 
    $lines++; 
    print $lines; 

내가 실행하면 : 펄 countlines합니다. pl

C:\perl> perl countlines.pl 
4 
C:\perl> 

내 프로 2 파일의 모든 라인 수를 계산하는 방법은 무엇입니까?

+0

인가 파일의 전체 라인을 보여주는

그래서 스크립트의 끝에,이 인쇄되어 읽기 라인의 수의 카운터입니다 $. 변수 특별한 펄이있다 이 숙제? – Borodin

답변

1

나는 <>에 대한 자동 양식을 사용하는 것이 좋습니다 것입니다 :

$count++ while <>; 
print $count; 

사용법 :

perl countlines.pl a.txt b.txt 

수동으로하고 싶은 경우에, 당신은 당신의 과정을 반복 할 수 있습니다 :

my ($lines) = (0); 
open (FILEA, "a.txt") or die "Can't open file: $!"; 
while (<FILEA>) { $lines++; } 
open (FILEB, "b.txt") or die "Can't open file: $!"; 
while (<FILEB>) { $lines++; } 
+0

어떻게 결과를 IRC에 출력하고 싶습니까? – user2535920

2

모든 파일 수에서 작동합니다.

는 -ln 플래그

작동 방법

perl -lne 'END { print $. }' a.txt b.txt 

는 펄이 같은 스크립트로 컴파일 :

BEGIN { $/ = "\n"; $\ = "\n"; } 
LINE: while (defined($_ = <ARGV>)) { 
    chomp $_; 
    sub END { 
     print $.; 
    } 
    ; 
} 

이 파일 주어 아무것도하지 않고 목록에있는 모든 파일에 루프!

그러나

관련 문제