다음 형식의 대규모 데이터베이스가 있습니다.
0500506 gi|561108321|ref|NC_018143.2| 71446 0
0500506 gi|561108321|ref|NC_018143.2| 71447 0
0500508 gi|561108321|ref|NC_018143.2| 71449 0
0500509 gi|561108321|ref|NC_018143.2| 71447 0
내가 하고 싶은 것은 아래와 같이 세 번째 열에 각각의 발생 횟수를 포함하는 새 테이블을 만드는 것입니다.
71446 1 0500506
71447 2 0500506,0500509
71449 1 0500508
중요한 것은 전체 행이 일치하지 않으므로 단일 열의 값만 일치하는지 확인하고 싶습니다. 다음 솔루션 중 하나를 사용할 수 있다고 가정합니다. grep을 사용하여 총 발생 횟수 계산, 하지만 어떻게 될지는 잘 모르겠습니다.
정말 고마워요, 멩
답변1
awk
작업에 더 달려있을 수 있습니다.
awk '{sep=$3 in a?",":"";b[$3]++;
a[$3]=a[$3]sep$1}; END{for (k in a) print k, b[k], a[k]}' file