O que se entende por -k1,1 em espécie

1

Estou seguindo este script e tentando entender o que acontece em cada linha. Na seguinte linha extraída de aqui envolve a classificação de alguns campos . No 14º exemplo dado aqui , diz que -k2,5 é a classificação das colunas 2 e 5, que são valores numéricos e -k9 representa a classificação da coluna 9, que é uma coluna de valor não numérico.

# Process the STMs
    cat db/TEDLIUM_release1/$set/stm/*.stm | sort -k1,1 -k2,2 -k4,4n | \
      sed -e 's:<F0_M>:<o,f0,male>:' \
          -e 's:<F0_F>:<o,f0,female>:' \
          -e 's:([0-9])::g' \
          -e 's:<sil>::g' \
          -e 's:([^ ]*)$::' | \
      awk '{ $2 = "A"; print $0; }'
  } | local/join_suffix.py db/TEDLIUM_release1/TEDLIUM.150K.dic > data/$set/stm 

Mas no segmento de código acima ( sort -k1,1-k2,2-k4,4n ), ele mapeia -k1,1 e também tem 3 conjuntos desses. Alguém pode me ajudar a entender isso?

    
por udani 16.01.2016 / 09:58

1 resposta

4

De man sort :

-k, --key=POS1[,POS2]
       start a key at POS1 (origin 1), end it at POS2 (default end of line)
...

POS  is F[.C][OPTS], where F is the field number and C the character position
in the field; both are origin 1.  If neither -t nor -b is in effect,
characters in a field are counted from the beginning of the preceding
whitespace.  OPTS is one or more single-letter  ordering options, which
override global ordering options for that key.  If no key is given, use the
entire line as the key.

O 14º exemplo nesse link que você postou está simplesmente incorreto. A partir do trecho da página acima, fica bastante claro que -k2,5 não irá classificar "com base nas chaves 2 e 5", mas com base nos campos 2 5, contados todos juntos como uma única chave de classificação. >

(Como um aparte: exemplos de código de fontes on-line aleatórias são bons e bons para se ter uma idéia aproximada do que o comando é ou pode fazer, mas quando você quer se aprofundar e realmente entender o que acontece, não há substituto para a leitura - ou pelo menos para a consultoria - na man page .);)

    
por 16.01.2016 / 10:09

Tags