Por favor, tente:
sort -t"|" -k2 address.txt
Acho que isso deve ser feito
Estou tentando classificar um arquivo com entradas semelhantes:
Essie | Vaill | 14225 Hancock Dr | Anchorage | AK | 99515 907-345-0962
Por favor, note o "|" representam guias de vários tamanhos. Eu estou tentando classificar isso pelo segundo campo, que neste caso são sobrenomes em ordem alfabética. Eu tentei vários comandos diferentes, como (note addresses.txt é o nome do arquivo):
sort -k 2 addresses.txt
sort -t$'\t' -k2 addresses.txt
sort -t "'/bin/echo '\t''" -k 2 addresses.txt
Nada disso está me dando o resultado desejado e, depois de pesquisar na internet, simplesmente não consigo encontrar uma solução que funcione da maneira que eu preciso. Se alguém puder me ajudar a encontrar a maneira de classificá-las pela segunda coluna em ordem alfabética, seria muito apreciado.
Uma abordagem mais generalizada em Perl. Isso pode ajudá-lo caso os espaços em branco sejam codificados de forma diferente dos espaços ou guias regulares:
perl -aF'[[:blank:]]+' -nle '
$lines{$_}=[@F];
END{
print for sort { $lines{$a}[1] cmp $lines{$b}[1] } keys %lines
}' your_file
No entanto, não posso garantir como ele será dimensionado em comparação com uma solução sort
.
Tags text-processing sort