Graças às ideias de comentários e outras fontes, finalmente consegui escrever este código e responder à minha própria pergunta:
inputStream | awk -F'\t' -v OFS="\t" '{
if ( col1 == ""){
for (i=1;i<=NF;i++){
if ($i == "BlueId"){
col1=i;
}
else if ($i == "WhiteId"){
col2=i;
}
}
print "-1" "\t" "-1" "\t" $0
}
else {
print $col1 "\t" $col2 "\t" $0
}
}' | sort -k1,1n -k2,2n | cut -f3- | outputStream
Funciona assim: ele pega dados de fluxo, localiza os números das colunas desejadas e imprime na frente de cada linha os dois valores necessários para classificar. Em seguida, ele classifica a 1ª e a 2ª coluna e as exclui. Obrigado!