![제목 외에 다른 파일을 기준으로 텍스트 파일 정렬](https://linux55.com/image/166825/%EC%A0%9C%EB%AA%A9%20%EC%99%B8%EC%97%90%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%A0%95%EB%A0%AC.png)
첫 번째와 두 번째 열이 개인 ID이고 나머지는 유전자형 정보인 파일이 있습니다. 각 개인에 대해 두 개의 행이 있다는 점을 언급해야 합니다. 파일에는 헤더 행이 있지만 개별 ID의 첫 번째 및 두 번째 열이 아닌 유전자형 열에만 해당됩니다.
SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR010 1 3 1 4 4 3 3 2 3 1
2014TOR010 1 1 1 2 4 3 3 2 4 1
06SELI0115 1 3 1 4 4 3 3 2 3 1
06SELI0115 1 3 1 2 4 3 2 2 3 2
2014TOR011 1 3 1 4 4 3 3 2 3 1
2014TOR011 1 1 1 2 4 1 3 2 4 2
....
이 파일을 다른 파일을 기준으로 정렬하고 싶습니다.
head sorted.snps.txt
2014TOR011
06SELI0115
2014TOR010
하지만 타이틀은 유지하고 싶다. 이것이 내가 원하는 출력입니다: head out.desired
SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR011 1 3 1 4 4 3 3 2 3 1
2014TOR011 1 1 1 2 4 1 3 2 4 2
06SELI0115 1 3 1 4 4 3 3 2 3 1
06SELI0115 1 3 1 2 4 3 2 2 3 2
2014TOR010 1 3 1 4 4 3 3 2 3 1
2014TOR010 1 1 1 2 4 3 3 2 4 1
....
답변1
테스트되지 않음:
awk '
NR==1 { print; next }
NR==FNR { a[$1]=($1 in a ? a[$1] ORS : "") $0; next }
{ print a[$1] }
' file1 sorted.snps.txt