Shell 从具有字符和数字值的文件中排序和删除重复项

Shell 从具有字符和数字值的文件中排序和删除重复项,shell,file,sorting,unix,duplicates,Shell,File,Sorting,Unix,Duplicates,我有这个档案: 1kg_1_100990624 rs768670248 rs3176861 rs1011842035 imm_12_2853458 rs951444582 1kg_14_80512920 rs902703491 8_41638322 rs56288115 1°列的值不同,而2°列的值始终采用相同的格式。它很长,我想对它进行排序,然后删除所有重复项。我使用sort-k1 file.txt,然后使用sort-u file.txt,但它不会删除重复项 对于“复制”,我的意思是: 1k

我有这个档案:

1kg_1_100990624 rs768670248
rs3176861 rs1011842035
imm_12_2853458 rs951444582
1kg_14_80512920 rs902703491
8_41638322 rs56288115
1°列的值不同,而2°列的值始终采用相同的格式。它很长,我想对它进行排序,然后删除所有重复项。我使用
sort-k1 file.txt
,然后使用
sort-u file.txt
,但它不会删除重复项

对于“复制”,我的意思是:

1kg\u 14\u 80512920 rs902703491
1kg_14_80512920 rs950301252
在这种情况下,我只取第一行(1kg_14_80512920 rs902703491)并删除所有其他行(整行,os 1°和2°列)


如何解决问题?

要删除重复项,请尝试一下:

awk '!a[$1]++' file
如果希望对结果进行排序,可以将结果传递给排序:

awk .... file | sort
或先排序,然后删除DUP:

sort file | awk '!a[$1]++'

要删除重复项,请尝试以下操作:

awk '!a[$1]++' file
如果希望对结果进行排序,可以将结果传递给排序:

awk .... file | sort
或先排序,然后删除DUP:

sort file | awk '!a[$1]++'

请定义“重复项”。删除col1重复项还是整行?我们也无法从您的描述或示例中读取。请定义“重复项”。删除col1重复项还是整行?我们也无法从您的描述或示例中看出这一点。之间的区别是什么!一个[$1]++'和'!在这种情况下,[$0]++'将@Will$1将在$1上进行比较并执行唯一操作,而$0将在整行上执行此操作。两者之间的区别是什么!一个[$1]++'和'!在这种情况下,[$0]++'将@Will$1在$1上进行比较并执行唯一操作,而$0将在整行上执行此操作。