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
units
página del manual.Respuestas:
sort -h
puede 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
sort
osort -n
). Supongo que es el separador decimal lo que confundesort -h
.LANG
en la máquina, dondeLC_NUMERIC
también estaba configurada para anular. Puede ser buena información incluir en la respuesta.tr a-z A-Z < filename | LC_NUMERIC=C sort -h
corrige las cosas si el usuario se encuentra en un área donde.
no está el separador decimal nativo.