텍스트 파일이 있는데 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
첫 번째 필드는 데이터이고 두 번째 필드는 해당 데이터의 해당 복사본입니다.