在数据字后面添加序列号

hen*_*407 1 linux sed awk

我的输入

cat file 
ABC
ABC
DEF
DEF
ABC
GHI
GHI
DEF
Run Code Online (Sandbox Code Playgroud)

我想要的输出

ABC_1 
ABC_2
DEF_1
DEF_2
ABC_3
GHI_1
GHI_2
DEF_3
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供帮助,我谷歌了很多,但仍然无法获得如何在 unix 中获得输出。

Joh*_*024 7

$ awk '{print $1 "_" ++c[$1]}' file
ABC_1
ABC_2
DEF_1
DEF_2
ABC_3
GHI_1
GHI_2
DEF_3
Run Code Online (Sandbox Code Playgroud)

以上使用了一个 awk 命令:print $1 "_" ++c[$1]. 这将打印第一个字段,然后是_,然后是迄今为止第一个字段出现的次数的计数。