Joe Jobs Asked: 2021-12-22 13:03:30 +0800 CST2021-12-22 13:03:30 +0800 CST 2021-12-22 13:03:30 +0800 CST 如何计算连续相同行的数量 772 我有一个看起来像这样的文件: 2000 2000 2001 2001 2001 2001 2002 2002 我需要一个脚本来告诉我这个: 2000 - 2 2001 - 4 2002 - 2 我更喜欢使用 sed 或 awk text-processing 1 个回答 Voted Best Answer terdon 2021-12-23T00:59:42+08:002021-12-23T00:59:42+08:00 这正是这样uniq -c做的。来自man uniq: 描述 从 INPUT(或标准输入)过滤相邻的匹配行,写入 OUTPUT(或标准输出)。 [ . . . ] -c, --count 前缀行的出现次数 因此,通过您的示例,我们得到: $ uniq -c file 2 2000 4 2001 2 2002 如果出于某种原因愿意,您也可以编写一个小脚本。例如,使用awk: $ awk '{ count[$0]++ } END{ for(line in count){ print line,count[line] }}' file 2000 2 2001 4 2002 2
这正是这样
uniq -c
做的。来自man uniq
:因此,通过您的示例,我们得到:
如果出于某种原因愿意,您也可以编写一个小脚本。例如,使用
awk
: