![txt 파일의 계산 행렬, 탭으로 구분된 파일의 경우 grep -c? [폐쇄]](https://linux55.com/image/130254/txt%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B3%84%EC%82%B0%20%ED%96%89%EB%A0%AC%2C%20%ED%83%AD%EC%9C%BC%EB%A1%9C%20%EA%B5%AC%EB%B6%84%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B2%BD%EC%9A%B0%20grep%20-c%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
텍스트 파일이 있는데 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
첫 번째 필드는 데이터이고 두 번째 필드는 해당 데이터의 해당 복사본입니다.