列刪除重複值I有一個大的數據文件在下面的格式如下:awk中的Uniq;在使用AWK
ENST00000371026 WDR78,WDR78,WDR78, WD repeat domain 78 isoform 1,WD repeat domain 78 isoform 1,WD repeat domain 78 isoform 2,
ENST00000371023 WDR32 WD repeat domain 32 isoform 2
ENST00000400908 RERE,KIAA0458, atrophin-1 like protein isoform a,Homo sapiens mRNA for KIAA0458 protein, partial cds.,
的列是製表符分隔。列中的多個值用逗號分隔。我想刪除第二列的重複值導致這樣的事情:
ENST00000371026 WDR78 WD repeat domain 78 isoform 1,WD repeat domain 78 isoform 1,WD repeat domain 78 isoform 2,
ENST00000371023 WDR32 WD repeat domain 32 isoform 2
ENST00000400908 RERE,KIAA0458 atrophin-1 like protein isoform a,Homo sapiens mRNA for KIAA0458 protein, partial cds.,
我嘗試下面的下面的代碼,但它似乎並沒有刪除重複值。
awk '
BEGIN { FS="\t" } ;
{
split($2, valueArray,",");
j=0;
for (i in valueArray)
{
if (!(valueArray[i] in duplicateArray))
{
duplicateArray[j] = valueArray[i];
j++;
}
};
printf $1 "\t";
for (j in duplicateArray)
{
if (duplicateArray[j]) {
printf duplicateArray[j] ",";
}
}
printf "\t";
print $3
}' knownGeneFromUCSC.txt
如何正確刪除第2列中的重複項?
+1非常感謝您的答覆。這個解決方案比我的要好。不過,我也很好奇爲什麼我的解決方案無法正常工作。出於這個原因,我會暫時設定一個被接受的答案。也許有人會知道如何在awk中做到這一點。 – 2010-06-05 00:07:39