를 사용한 컬럼에서 중복 값을 제거 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에서 그것을하는 법을 알게 될 것입니다. –