txt 파일의 계산 행렬, 탭으로 구분된 파일의 경우 grep -c? [폐쇄]

txt 파일의 계산 행렬, 탭으로 구분된 파일의 경우 grep -c? [폐쇄]

텍스트 파일이 있는데 head그 내용은 다음과 같습니다.

1   TACCCTGTAGAACCGAATTTGT  miRNA   mmu-mir-10b PM
2   GCATTGGTGGTTCAGTGGTAGAATTCTCGCCT    tRNA    Mus_musculus_tRNA-Gly-GCC-4-1   PM
3   TACCCTGTAGATCCGAATTTGT  miRNA   mmu-mir-10a PM
4   GCATTGTGGTTCAGTGGTAGAATTCTCGCCT tRNA    Mus_musculus_tRNA-Gly-GCC-2-2   IM
5   ACCCTGTAGAACCGAATTTGT   other   other   NA
6   TACCCTGTAGAACCGAATTTG   other   other   NA
7   GCATTGGTTCAGTGGTAGAATTCTCGCCT   tRNA    Mus_musculus_tRNA-Gly-GCC-2-7   IM
8   GCATTTGTGGTTCAGTGGTAGAATTCTCGCCT    tRNA    Mus_musculus_tRNA-Gly-GCC-4-1   IM
9   TACCCTGTAGAACCGAATTTGTG miRNA   mmu-mir-10b PM
10  GGTGAATATAGTTTACAAAAAACATTAGACTGTGAATC  tRNA    tRNA-His    IM

나는 다음과 같은 것을 갖도록 각 행의 네 번째 값을 기반으로 한 개수의 행렬을 원합니다.

mmu-mir-10b 2

답변1

awk위치 #4에 모든 중복 항목을 가져오려면(데이터가 공백으로 구분되어 있다고 가정) 다음을 사용할 수 있습니다.

$ awk '{seen[$4]++} END{for(x in seen) print x, seen[x]}' infile
other 2
Mus_musculus_tRNA-Gly-GCC-2-2 1
Mus_musculus_tRNA-Gly-GCC-2-7 1
mmu-mir-10a 1
mmu-mir-10b 2
tRNA-His 1
Mus_musculus_tRNA-Gly-GCC-4-1 2

첫 번째 필드는 데이터이고 두 번째 필드는 해당 데이터의 해당 복사본입니다.

관련 정보