bash 명령을 사용하십시오.

bash 명령을 사용하십시오.

다음과 같은 테이블 형식의 파일이 있습니다.

abc00000000     1   643301  643374  Ile AAT 0   0   80.6    
abc00000000     2   1278112 1278193 Ser GCT 0   0   86.2    
abc00000000     3   1278382 1278463 Ser GCT 0   0   87.4    
abc00000000     4   1282753 1282824 Glu TTC 0   0   70.9    
abc00000001     1   138441  138512  Glu TTC 0   0   70.9    
abc00000001     2   186490  186571  Leu AAG 0   0   71.6
abc00000002     1   1342954 1343060 Tyr GTA 1342991 1343024 78.3    
abc00000002     2   1359693 1359620 Val AAC 0   0   75.1    
abc00000002     3   943029  942957  Val CAC 0   0   73.2

처음 두 열에만 관심이 있습니다.

첫 번째 열은 DNA 비계의 이름을 나타내고 두 번째 열은 이러한 비계에서 뭔가 다른 일이 발생하는 횟수입니다(매번 다른 돌연변이라고 가정해 보겠습니다).

각 비계에 대한 돌연변이 수를 제공하는 명령을 찾으려고 합니다. 따라서 비계 "abc00000000"에는 4개의 돌연변이가 있고, 비계 "abc00000001"에는 2개의 돌연변이가 있습니다.

"awk"가 작동할 수도 있지만 올바른 명령을 찾을 수 없습니다. 감사해요

답변1

각 스캐폴드 이름이 첫 번째 열에 나타나는 횟수를 세고 싶은 것 같습니다. 그렇다면 다음과 같이 할 수 있습니다.

$ sort file | awk '{print $1}' | uniq -c
4 abc00000000
2 abc00000001
3 abc00000002

또는 파일이 커서 정렬하고 싶지 않은 경우:

$ awk '{a[$1]++}END{for(i in a){print i, a[i]}}' file 
abc00000000 4
abc00000001 2
abc00000002 3

답변2

이 awk 방법은 당신에게 효과적입니다:

awk '{ col1[$1]+=$2; next } END { for ( i in col1) print i, col1[i] }'

답변3

bash 명령을 사용하십시오.

$ cut -d" " -f 1 file.txt 정렬 |

$ cut -d"\t" -f 1 file.txt |sort|UNIQLO-c

d" ": 테이블이 공백으로 구분된 경우

d"\t": 테이블이 TAB으로 구분된 경우

관련 정보