[請益] 如何寫出倒著累加的script?

看板Perl作者 (^_^)時間16年前 (2009/05/24 10:08), 編輯推噓3(309)
留言12則, 4人參與, 最新討論串1/3 (看更多)
想請教版友,如何寫出由後往前累加的script? 資料型態長這個樣子: GY*20 49 74 DS*21 38 63 TE*24 23 28 FF*25 11 21 GT*26 12 14 ^^ 要將這個數直從後往前累加... 在這個例子裡面希望得到: 133 84 46 23 12 (左邊的數字(*後面的)可能不連續) 不知道有沒有辦法辦到.. 要處理的資料量很大,現在用計算機按ing...Orz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PS.有想過有要hash試試 my %f; while ( <DATA> ) { my ($k,$w,$v) = m/\w\w\*(\d+)\s(\d+)\s(\d+)/; $f{ $k } ||=0, $f{ $k }+=$w; } 這樣%f就是含有數值的hash,不過接下來不知道該怎麼從後面加回來 可能不是個好方法>"< -- 37m﹡ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.174.36.214

05/24 11:30, , 1F
其實數值不多的話 乾脆算完再到過來印就好了
05/24 11:30, 1F

05/24 11:31, , 2F
能用計算機按的量 應該也不會多到哪裡去吧 .. ?
05/24 11:31, 2F

05/24 13:26, , 3F
回r大:真的很多耶XD 大概30*6*200...36000筆,算好以後還會
05/24 13:26, 3F

05/24 13:26, , 4F
花key in的時間,所以才想要盡量用程式解決的>"<
05/24 13:26, 4F

05/24 17:55, , 5F
這種題目之前不是解過了嗎?
05/24 17:55, 5F

05/24 17:56, , 6F
哦!是要倒著累加 XD
05/24 17:56, 6F

05/24 18:07, , 7F
tail -r file > reversed_file # ?
05/24 18:07, 7F

05/24 18:08, , 8F
36000 也還好吧,數字算小了呀
05/24 18:08, 8F

05/24 19:23, , 9F
如果你有 tac 這個程式的話可在 command line 輸入:
05/24 19:23, 9F

05/24 19:24, , 10F
tac f.txt | perl -F"\s+" -anE 'say $v+=$F[1]' | tac
05/24 19:24, 10F

05/24 19:25, , 11F
f.txt 是你要處理的檔案名稱
05/24 19:25, 11F

05/25 15:25, , 12F
推~謝謝各位!
05/25 15:25, 12F
文章代碼(AID): #1A6AmFQC (Perl)
文章代碼(AID): #1A6AmFQC (Perl)