如何使用 awk 重命名重复的行?

gra*_*red 2 awk rename duplicates

我有一个包含 100 万行的文件,有些行是重复的。我想通过附加“变体”+一个数字来重命名重复的行。该文件的格式如下:

I am a test line
She is beautiful
need for speed
Nice day today
I am a test line
stack overflow is fun
I am a test line
stack overflow is fun
I have more sentences
I am a test line
She is beautiful
Speed for need
stack overflow is fun
Let's stop here
Run Code Online (Sandbox Code Playgroud)

预期结果:

    I am a test line
    She is beautiful
    need for speed
    Nice day today
    I am a test line variant 1
    stack overflow is fun
    I am a test line variant 2
    stack overflow is fun variant 1
    I have more sentences
    I am a test line variant 3
    She is beautiful variant 1
    Speed for need variant 1
    stack overflow is fun variant 2
    Let's stop here
Run Code Online (Sandbox Code Playgroud)

Ed *_*ton 5

$ awk 'cnt[$0]++{$0=$0" variant "cnt[$0]-1} 1' file
I am a test line
She is beautiful
need for speed
Nice day today
I am a test line variant 1
stack overflow is fun
I am a test line variant 2
stack overflow is fun variant 1
I have more sentences
I am a test line variant 3
She is beautiful variant 1
Speed for need
stack overflow is fun variant 2
Let's stop here
Run Code Online (Sandbox Code Playgroud)