Tengo un archivo que contiene algunos datos en formato de columna, por ejemplo:
219m
219m
3.9g
3.9g
4.0g
4.0g
4.1g
4.1g
4.2g
4.2g
4.2g
Quiero comparar los datos y encontrar el mayor valor de estos. Aquí g representa GB ym significa MB. ¿Cómo encontraría el mayor número usando un script de shell de Linux?
linux
shell-script
usuario2525107
fuente
fuente

unitspágina del manual.Respuestas:
sort -hpuede hacer esto por usted, pero necesita el sufijo de magnitud (es decir, 'g' y 'm') para estar en mayúsculas. Entonces, para sus datos, podría hacerEn algunos entornos locales,
.no se reconoce como separador decimal (consulte Separador decimal: ejemplos de uso [Wikipedia] ). Si ese es el caso, modifique el comando como, por ejemplo:fuente
sortosort -n). Supongo que es el separador decimal lo que confundesort -h.LANGen la máquina, dondeLC_NUMERICtambién estaba configurada para anular. Puede ser buena información incluir en la respuesta.tr a-z A-Z < filename | LC_NUMERIC=C sort -hcorrige las cosas si el usuario se encuentra en un área donde.no está el separador decimal nativo.