linux - 计算多行中某个字段的出现次数

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

最佳答案

#!/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

关于linux - 计算多行中某个字段的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704734/

相关文章:

linux - JBoss 在服务器重新启动时停止尾部

无法安装 Json-server,还有其他建议吗?

linux - 我们如何将工件从 Linux 复制到 Windows 服务器?

bash - 从函数 : Why does "declare -A foo=$(bar)" work but not "declare -A foo; foo=$(bar)"? 的输出创建 Bash 关联数组

linux - 用另一个字符替换字符串中包含特殊字符的子字符串

linux - 在网络命名空间上打开 gnome-terminal,然后运行命令

linux - lsof linux 命令使用参数值计算正在运行的实例

linux - 如何使用 Linux 获取触摸屏原始数据的坐标

c - shmget : Operation not permitted

c++ - 将文件内容重定向为可执行文件linux的标准输入