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

时间:2016-05-19 06:32:53

标签: linux bash shell awk sed

我有一个带有重复行的文件。我想在这些重复结束时只输入序号。

实施例

输入:

findViewById(R.id.mainLayout).requestFocus();

输出:

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

我无法对这些行进行排序。它们必须出现在同一个订单上。

1 个答案:

答案 0 :(得分:2)

循环两次:

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