2013-04-05 36 views
1

我有這樣一個文件:數由元素在Perl

fan  apple banana orange mango 
cooler apple orange banana mango 
cooler apple orange banana mango 
cooler apple orange banana mango 
fan  apple banana orange mango 
fan  apple banana orange mango 
cooler apple orange banana mango 
fan  apple banana orange mango 

現在,當我被行我想在那一刻來算,當風扇開始轉動,需要增加與每一個球迷指望去行。像

count 1 
fan  apple banana orange mango 
cooler apple orange banana mango 
cooler apple orange banana mango 
cooler apple orange banana mango 
count 2 
fan  apple banana orange mango 
count 3 
fan  apple banana orange mango 
cooler apple orange banana mango 
count 4 
fan  apple banana orange mango 

這就是我想要的輸出。幫助表示讚賞...謝謝你

+2

做什麼代碼,你有至今? – Nate 2013-04-05 21:56:13

回答

1
#!/usr/bin/perl 
use strict; 
use warnings; 

my $n = 0; 
while (<>) { 
    print "count ", ++$n, "\n" if /^fan\b/; 
    print; 
} 

或使用Perl 5.10+一個班輪:

perl -pE 'say "count ", ++$n if /^fan\b/' 
+0

你可以擠出幾筆:'perl -pE'say「count」,++ $ n if/^ fan \ b /'';-) – 2013-04-06 00:10:01

+1

@Hynek:錯誤的網站,我們不在http:// codegolf.stackexchange.com :)(另外,如果我們是'perl -pE'/^fan \ b/&&說「count」,++ $ n''會比一個字符更短)。 – 2013-04-06 09:57:45

0

在一個班輪:

perl -lane 'BEGIN{$c=1}; $F[0] eq "fan" && do{print "count ".$c++ }; print' file