Tengo un archivo de texto en Linux que se ve así:
H-988 -0.5418829321861267 no H-989 -0.5033702254295349 yes H-990 -1.1516857147216797 hi H-99 -0.5005123019218445 helloQuiero ordenar este archivo según el número que viene después del guión. Entonces el orden debe ser:
H-99 -0.5005123019218445 hello H-988 -0.5418829321861267 no H-989 -0.5033702254295349 yes H-990 -1.1516857147216797 hi Probé el comando grep sort pero no funcionó. Por ejemplo, pone 95 después de 949 en lugar de antes, lo mismo ocurre con 99 y 990 como en el ejemplo proporcionado.
Debe ordenar como numéricamente,
sort --numeric-sort --field-separator "-" --key 2 some.txto una versión más corta
sort -n -t "-" -k 2 some.txtSi el primer campo siempre tiene solo dos caracteres antes del número, puede omitirlos:
sort -k1.3,1n ip.txt -k1.3 le dice a sort que comience a considerar el campo (que es 1 aquí) solo desde el tercer carácter