점수인 6번째 열을 기준으로 입력 파일을 정렬해야 합니다.
입력 파일:
Sc2/80 20 . A T 86 Pass N=2 F=5;U=4
Sc2/80 20 . A C 80 Pass N=2 F=5;U=4
Sc2/60 55 . G T 90 Pass N=2 F=5;U=4
Sc2/60 55 . G C 99 Pass N=2 F=5;U=4
Sc2/20 39 . C T 97 Pass N=2 F=5;U=4
Sc2/20 39 . C A 99 Pass N=2 F=5;U=4
예상 출력:
Sc2/20 39 . C T 97 Pass N=2 F=5;U=4
Sc2/20 39 . C A 99 Pass N=2 F=5;U=4
Sc2/60 55 . G T 90 Pass N=2 F=5;U=4
Sc2/60 55 . G C 99 Pass N=2 F=5;U=4
Sc2/80 20 . A T 86 Pass N=2 F=5;U=4
Sc2/80 20 . A C 80 Pass N=2 F=5;U=4
논리: 입력 파일의 모든 짝수 라인을 비교하고 점수에 따라(내림차순) 정렬하고 파일에서 해당 홀수 라인을 인쇄합니다. 임의의(짝수 행) 점수가 동일하면 해당 홀수 행의 점수를 확인해야 하므로 더 높은 점수가 우선적으로 적용되어 먼저 인쇄됩니다.
답변1
한 가지 가능한 해결책은 두 행을 모두 모아서 정렬한 다음 연결된 행을 다시 분할하는 것입니다.
awk '{ getline line; print $0, line }' input_file |
sort -k6,6nr -k15,15nr |
awk '{ $10 = "\n" $10; print }'