如何只将序列号放在重复行的末尾

  • 本文关键字:序列号 linux bash shell awk sed
  • 更新时间 :
  • 英文 :


我有一个文件,上面有一些重复的行。我只想在这些重复的末尾放一个序列号。

例。

输入:

Jose da Silva
Jose da Silva
Fulano de Tal
Jose da Silva
Sicrano Pereira
Ze Ruela
Sicrano Pereira
Jose da Silva

输出:

Jose da Silva #1
Jose da Silva #2
Fulano de Tal
Jose da Silva #3
Sicrano Pereira #1
Ze Ruela
Sicrano Pereira #2
Jose da Silva #4

我无法对这些行进行排序。它们必须以相同的顺序出现。

循环

两次:

awk 'FNR==NR {count[$0]++; next} 
     count[$0]>1 {$0=$0 FS "#"++times[$0]}
     1' file file

即:第一次,计算每行出现多少次。第二次,继续将递增的数字附加到多次出现的数字中。

$ awk 'FNR==NR {count[$0]++; next} count[$0]>1 {$0=$0 FS "#"++times[$0]}1' file file
Jose da Silva #1
Jose da Silva #2
Fulano de Tal
Jose da Silva #3
Sicrano Pereira #1
Ze Ruela
Sicrano Pereira #2
Jose da Silva #4

相关内容

  • 没有找到相关文章

最新更新