Eu tenho o arquivo1:
"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58"
Arquivo2 I querer:
"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58"
Basicamente, classificar numericamente o arquivo1.
Comentários
Resposta
Eu gosto de -V –version-sort: ele se comporta muito bem para muitas situações, misturando strings e números
sort -V
Eu uso essa opção com frequência …
Em alguma direção , ls -v
para classificação de versão ls
.
Resposta
Você precisa dizer a sort -n
para classificar a parte após =
:
sort -t = -k 2n
Comentários
- Eu estava procurando recentemente ^^. Mas mais um Q. O que
-k2n
? Isso está relacionado à classificação numérica? obrigado. - @KasiyA
-k
define uma chave de classificação. Veja a página do manual para detalhes.-k2n
define uma chave de classificação começando no segundo campo e terminando no final da linha e a torna uma chave de classificação numérica.
Resposta
Descobri que, basta executar sort -h
e vai funcionar. Eles o chamam de --human-numberic-sort
.
sort -h file1 > file2
Resposta
use classificar:
sort -n file1 > file2
-n, –numeric-sort
compare de acordo com o valor numérico da string
sort -g file1 > file 2
-g, –general-numeric-sort
Comentários
- Não, todos aqueles as linhas têm a mesma classificação com
sort -n
uma vez que não ' t começam com um número. A razão pela qual ele os classifica é a classificação de linha completa de último recurso (lexicamente, não numericamente) feita para linhas com a mesma classificação. Isso classificaria"$lvl=17"
antes de"$lvl=2"
. - @St é phaneChazelas obrigado por apontar.
- Para parafrasear,
-n
e-g
são redundantes aqui, pois a entrada não é numérica . Portanto, essa resposta é enganosa, por isso o voto negativo (observe também que-g
e as opções longas são específicas do GNU). - mas -g é bom geral-numérico- classificar
- Que ' s ainda para classificar valores numéricos, a diferença com
-n
é que ' s não limitado a inteiros decimais. Isso ainda classificaria"$lvl=17"
antes de"$lvl=2"
como parte da classificação de último recurso.
Resposta
sort -n
é o que você deseja usar. Classifica como classificamos os números. sort -k 2 -n file1
Comentários
- Mas o OP deseja classificar em ordem crescente, que é o padrão. Por que você está sugerindo a ordem inversa?
- o que está acima está correto quando os campos são separados por tabs ou espaços e não funcionam em OP ' caso.
sort
simples em seu Arquivo1, sem opções, obtenho seu Arquivo2. O que você está fazendo de diferente? O que você está deixando de fora desta pergunta?