Uma solução possível é reunir cada uma das duas linhas, classificar e dividir novamente as linhas unidas
awk '{ getline line; print $0, line }' input_file |
sort -k6,6nr -k15,15nr |
awk '{ $10 = "\n" $10; print }'
Eu preciso classificar o arquivo de entrada de acordo com a sexta coluna, que é a pontuação.
Arquivo de entrada:
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
Resultado esperado:
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
Lógica: Todas as linhas pares do arquivo de entrada devem ser comparadas e classificadas de acordo com a pontuação (Ordem Decrescente) e a linha ímpar correspondente do arquivo deve ser impressa também com ele. Se qualquer uma das pontuações (das linhas pares) for igual, então precisamos olhar para a pontuação da linha ímpar correspondente e, portanto, a pontuação mais alta tem prioridade e é impressa primeiro.
Tags text-processing awk sort