Linux 跨多行计算字段的出现次数
我试图计算一列的累积和,并在输出文件的最后一列返回答案 下面是一个示例输入文件Linux 跨多行计算字段的出现次数,linux,bash,shell,unix,scripting,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
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您的_输入_文件使用关联数组非常容易。与其向我们提出这个问题,不如说你做了什么(以及你在哪里被卡住了)。我不知道你的意思。首先,您想在最后一列中找到答案(尝试对“inputfile”| uniq-c)排序,还是想得到所需输出的结果?谢谢您的建议。您使用sort和uniq的解决方案为我提供了每个元素的计数。但是,我正在寻找所需输出中显示的累积计数。感谢您提供此解决方案。它解决了我的问题,并向我展示了如何使用awk做类似的事情。