2015-11-14 43 views
-1

我想計算一列的累計總數並在輸出文件的最後一列中返回答案。計算多行中字段的出現次數

下面是一個例子的輸入文件

a 
a 
a 
b 
b 
c 
d 
d 

下面是所期望的輸出

a 1 
a 2 
a 3 
b 1 
b 2 
c 1 
d 1 
d 2  

我想解決能夠從UNIX命令行運行。

+3

很容易與關聯數組。更好地說出你試過的東西(和你卡住的地方),而不是把問題拋給我們。 – 4ae1e1

+0

我不確定你的意思。首先你說你想在最後一欄中輸入答案(嘗試'sort「inputfile」| uniq -c'),或者你想要用'desired output'顯示什麼? –

+0

感謝您的建議。你的解決方案使用sort和uniq給了我每個元素的統計。但是,我正在尋找所需輸出中顯示的累計計數。 –

回答

0
#!/bin/bash 

PREV="" 
COUNT="0" 

cat ${1} | while read LINE ; do 
    if [ "${LINE}" == "${PREV}" ] ; then 
    ((COUNT++)) 
    else 
    ((COUNT=1)) 
    fi 
    echo "${LINE} ${COUNT}" 
    PREV="${LINE}" 
done 

保存這個腳本並運行:./script.sh your_input_file

+0

感謝您使用此解決方案。它解決了我的問題,並向我展示瞭如何使用awk來做類似的事情。 –