【发布时间】:2018-10-30 04:50:54
【问题描述】:
我一直在 bash 中工作,尝试基于输入文件打印文本。 我的文件包含以下文本:
a
a
a
b
c
c
c
d
d
e
e
对于与前一行不匹配的每一行,我想给一个计数器加 1 并将计数器打印在原始条目旁边。对于相等的行,我想按原样打印计数器,如下所示:
a 1
a 1
a 1
b 2
c 3
c 3
c 3
d 4
d 4
e 5
e 5
我已经尝试了下面的代码,但这只会为我提供与前几行相同的行的信息,并且不会打印计数器。
f=a
counter=1
awk '{
if ($0==f && NR>1) {print f, counter} {f=$0} ;
next
elif ($0!=f && NR>1)
{print f, ++counter} {f=$0}
}' file.txt
输出:
a
a
c
c
d
e
【问题讨论】:
标签: bash