Como os arquivos são classificados agora? A linha 3, digamos, dos três arquivos se refere ao mesmo aluno? Nesse caso, você poderia expandir sua paste solution para isso:
paste /studentName/name.txt /studentMail/mail.txt /studentNumber/number.txt | sort
que ordenaria todos os registros (linhas) pelo nome do aluno. Você poderia classificar por algum outro campo usando as opções apropriadas para sort .
Para selecionar uma única linha a ser exibida, siga qualquer comando que forneça uma lista classificada corretamente com grep , por exemplo,
paste ... | sort | grep 'pattern'
onde "padrão" seria seu critério de pesquisa na forma de uma expressão regular. Claro, se você está selecionando apenas uma linha, não há necessidade de sort .
Outro comando que você pode achar útil é join , mas eu não sei o suficiente sobre isso para dar um exemplo de seu uso.
Atualização: formatação com awk
A saída do comando paste acima é uma seqüência de linhas, cada linha consistindo em três campos separados uns dos outros por guias, ou seja,
Estas linhas podem ser formatadas colocando-as no seguinte comando awk .
awk -F '\t' '{printf "%-20s%-16s%s\n", $1, $2, $3}'
O argumento -F '\t' especifica que o separador do campo de entrada é um caractere de tabulação. Isso separará as linhas de entrada em três campos aos quais awk se refere, por $1 , $2 e $3 . A linguagem awk inclui uma função printf que se comporta essencialmente da mesma forma que a função printf() da biblioteca C. A string de formato acima especifica três campos de string. O primeiro, %-20s , especifica que o parâmetro de string correspondente seja justificado à esquerda em um campo de 20 caracteres. O segundo, %-16s , especifica que seu parâmetro seja justificado à esquerda em um campo de 16 caracteres. O último, %s , apenas acrescenta seu parâmetro ao que foi formatado até o momento. Finalmente, o \n coloca uma nova linha no final para que cada linha de entrada seja formatada para uma linha de saída separada.
Para ajustar a saída ao seu gosto, basta alterar as larguras do campo e / ou remover os sinais de menos para justificar as cordas à direita. Para mais opções, consulte as páginas awk e printf man.