No caso de alguém mais estar curioso sobre isso ... e por acaso encontrar essa questão, a menção do --debug
do Sukminder no GNU sort me ajudou a encontrar uma resposta para riscar essa coceira. Suponha, como um exemplo reconhecidamente planejado, que você queira classificar este arquivo formatado de forma descuidada:
x FRA-Paris Pierre
x ESP-Barcelona Jordi
x FRA-Nice Charles
x FRA-Toulouse Nicole
x ESP-Seville Javier
x ESP-Madrid Carlos
para isso:
x ESP-Madrid Carlos
x ESP-Seville Javier
x ESP-Barcelona Jordi
x FRA-Nice Charles
x FRA-Toulouse Nicole
x FRA-Paris Pierre
Ou seja, apenas prestando atenção ao país no segundo campo e depois ao nome da pessoa, no terceiro campo. Queremos considerar os três primeiros caracteres do segundo campo, e é importante ignorar os espaços em branco iniciais ao determinar o primeiro caractere e o terceiro caractere.
O comando sort -k 2b,2.3b -k 3b
funcionaria, mas sort -k 2b,2.3 -k 3b
não funcionaria. Deve ser dito que, neste caso, o caminho mais natural seria aplicar uma opção global -b
, simplesmente como sort -bk 2,2.3 -k 3
.