计算跨多行的字段的出现次数

时间:2015-11-14 03:15:36

标签: linux bash shell unix scripting

我正在尝试计算列的累积总和,并在输出文件的最后一列中返回答案。

这是一个示例输入文件

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命令行运行。

1 个答案:

答案 0 :(得分: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