Linux 如何仅在重复行的末尾放置序列号

Linux 如何仅在重复行的末尾放置序列号,linux,bash,shell,awk,sed,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

我有一个有几行重复的文件。我只想在这些重复的末尾加上一个序号

例如

输入:

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
输出:

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
循环两次:

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

请将您的代码添加到问题中。请将您的代码添加到问题中。我在用sed解决方案思考,因为awk对我来说有点模糊。但是谢谢!它在这里工作得很好@meleu在这些情况下,
sed
awk
:)你明白我回答的原因吗?我希望它是清楚的。哦,天哪!我刚刚意识到原始文件的编号后面是冒号,然后是名称。我用
cut-d:-f2
剪切了那个数字,以后我需要这些原始行号。。。我会问另一个问题,因为我认为这个答案非常适合我的原始问题,可以帮助其他用户…我认为这个答案非常适合我的原始问题,可以帮助其他用户。。。也许做另一个问题更有用。你觉得怎么样?@meleu是的,如果你有不同的问题,问不同的问题。我在用sed解决方案思考,因为awk对我来说有点模糊。但是谢谢!它在这里工作得很好@meleu在这些情况下,
sed
awk
:)你明白我回答的原因吗?我希望它是清楚的。哦,天哪!我刚刚意识到原始文件的编号后面是冒号,然后是名称。我用
cut-d:-f2
剪切了那个数字,以后我需要这些原始行号。。。我会问另一个问题,因为我认为这个答案非常适合我的原始问题,可以帮助其他用户…我认为这个答案非常适合我的原始问题,可以帮助其他用户。。。也许做另一个问题更有用。你觉得怎么样?@meleu是的,如果你有不同的问题,问不同的问题。