2014-02-10 61 views
0

我有一個數據文件。Perl一行代碼提取並彙總文件中的數字

文件:

Rows: 2 
... 
... 
Rows: 3 

的命令來搜索 '行'。

perl -ne 'while (/Rows\:/gi) { s/([.]*Rows :)([.]*)/$2/i, s/^ *//; print }'` 

給出:

2 
3 

我要總結的值,並給出一個結果作爲5(2 + 3)。

請幫忙。

回答

2

-n標誌放while循環給你,這樣你就不會需要循環:

perl -lne '$s += $1 if /^Rows:\s*(\d+)/; END{print $s}' input 
+2

沒有,'-l'標誌處理換行符('chomp's和套'$ \' )。 '-n'標誌添加一個while循環。 – TLP

+0

OP正在循環正則表達式 –

+0

@TLP,謝謝修復它 – perreal