2013-06-28 27 views
-4

的Linux:在每列計數1's發生的Linux:計數1周的的發生在每列

我有以下內容

0  0  1  0  0 

0  0  1  1  1 

0  1  1  1  0 

1  0  1  0  0 

文件現在,我想算1's在每一列中,並且需要將它與列號一起寫入一個文件中。

因此,我期望是,

1  1 

2  1 

3  4 

4  2 

5  1 

其中第一列代表的列位置(從1到5在給定示例)

,第二列是1's各自的計數柱

在我的輸出要求的變化:

需要打印以相反的順序(5 insread OD 1等)

+2

你不能做到這一點與Linux操作系統。 Linux只是一個操作系統。我們在談論什麼編程語言? –

+1

「所以我期望的是XYZ」 - 爲什麼你期望*什麼*當你完成了*什麼都沒有?* – 2013-06-28 07:48:47

+0

你應該告訴我們你試過的東西,這樣你就不會得到你正在尋找的答案。看看:http://stackoverflow.com/help/how-to-ask – hetepeperfan

回答

0

AWK是更好的列編號工具爲:

awk 'NF>0{for (i=1; i<=NF; i++) if($i==1) a[NR]++;} 
    END{for(i=1; i<=length(a); i++) print i, a[i]}' file 

編輯1:每列數1分的:

awk 'NF>0{for (i=1; i<=NF; i++) if($i==1) a[i]++;} 
    END{for(i=1; i<=length(a); i++) print i, a[i]}' file 

編輯2:要計算1個在每一列,按相反的順序打印:

awk 'NF>0{for (i=1; i<=NF; i++) if($i==1) a[i]++;} 
    END{for(i=length(a); i>=1; i--) print i, a[i]}' file 
+0

感謝您的評論,但是您給出的一個小改變是每行中的數字是1,但是我要查找的是每列中1的數量。你能相應地修改腳本嗎? – user1682877

+0

好吧,看看編輯部分。 – anubhava

+0

感謝您的回覆。有沒有辦法以相反的順序改變編號? – user1682877