列中的重复:随机保留一个

Sva*_*alf 4 bash awk duplicates multiple-columns

我有一个文件(input.txt),其结构类似于:

 abc    1
 bcd    a
 cde    1
 def    4
 efg    a
 fgh    3
Run Code Online (Sandbox Code Playgroud)

我想删除第2列中的重复项,以便在该列中只包含唯一的字符串(独立于第1列中的内容).但选择的行应该是随意选择的.输出可以是例如:

 bcd    a
 cde    1
 def    4
 fgh    3
Run Code Online (Sandbox Code Playgroud)

我试图创建一个列出重复项(使用awk '{print $2}' input.txt | sort | uniq -D | uniq)的文件,但后来我只是设法删除它们awk '!A[$2]++'而不是随机保留其中一个重复项.

Wil*_*ell 5

预处理输入以使其随机化:

shuf input.txt | awk '!A[$2]++'
Run Code Online (Sandbox Code Playgroud)