Classificando por sobrenome na coluna Scond

0

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.

    
por Maximillian Fargo 22.04.2014 / 20:15

2 respostas

1

Por favor, tente:

sort -t"|" -k2 address.txt

Acho que isso deve ser feito

    
por 22.04.2014 / 20:22
0

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 .

    
por 23.04.2014 / 01:54