在数据字后面添加序列号

在数据字后面添加序列号

我的意见

cat file 
ABC
ABC
DEF
DEF
ABC
GHI
GHI
DEF

我想要的输出

ABC_1 
ABC_2
DEF_1
DEF_2
ABC_3
GHI_1
GHI_2
DEF_3

任何人都可以帮忙,我用谷歌搜索了很多,但仍然不知道如何在unix中获取输出。

答案1

$ awk '{print $1 "_" ++c[$1]}' file
ABC_1
ABC_2
DEF_1
DEF_2
ABC_3
GHI_1
GHI_2
DEF_3

上面使用了一个 awk 命令:print $1 "_" ++c[$1]。这将打印第一个字段,后跟_,然后是迄今为止第一个字段被看到的次数。

答案2

awk '$0=$0"_"++n[$0]' #comment

相关内容