Comando UNIX para ordenar o arquivo pelas seguintes palavras, da chave de ordenação principal à chave de ordenação secundária: word 3, word 1, word 4

0

Precisa de ajuda com o comando UNIX abaixo para ordenar o arquivo pelas seguintes palavras, da chave de ordenação principal à tecla de ordenação secundária: word 3, word 1, word 4. (as palavras são separadas por espaços em branco)

classifique -t -k3 -k1 -k4 > newfile.txt não funciona

    
por An Dorfer 20.03.2013 / 03:50

1 resposta

3

Resposta curta é: livre-se do -t ou especifique -t" " ou similar para especificar um único caractere como seu delimitador.

Então:      sort -k3 -k1 -k4 in.txt > newfile.txt

Em detalhes ...

in.txt

one two three four
the quick brown fox
jumps over the lazy dog
pun poo three poor
one two three four five
the elegant brown zebra

bash cmd

  • Você está classificando palavras, por isso estou mostrando como especificar a opção -d para a classificação do dicionário. Você pode usar a classificação numérica com a opção -g para outras situações.
  • Você deseja espaços em branco - é isso que o tipo usa por padrão. Caso contrário, você precisaria usar -t"," ou similar.
  • Então o cmd é:

    sort -k3,3d -k1,1d -k4,4d in.txt > newfile.txt

newfile.txt

the quick brown fox
the elegant brown zebra
jumps over the lazy dog
one two three four
one two three four five
pun poo three poor
    
por 20.03.2013 / 04:27