Esto debería funcionar:
awk -v max=0 '{if($1>max){want=$2; max=$1}}END{print want} ' version.log
Los -v max=0
establece la variable max
a 0
y, a continuación, para cada línea, el primer campo se compara con el valor actual de max
. Si es mayor, max
se establece en el valor del primer campo y want
se establece en la línea actual. Cuando el programa ha procesado todo el archivo, want
se imprime el valor actual de .
Editar
No probé la awk
solución antes y fue realmente malo haberla proporcionado. De todos modos, la versión editada de la respuesta debería funcionar (Gracias a terdon por solucionarlo) y probé también la siguiente.
sort -nrk1,1 filename | head -1 | cut -d ' ' -f3
Estoy sort
en el primer campo donde,
- -n especifica la ordenación numérica.
- -r especifica revertir el resultado de la ordenación.
- Especifica -k1,1 primer campo para la clasificación de que se produzca.
Ahora, después de la clasificación, estoy canalizando la salida y obteniendo el primer resultado que me dará el valor numéricamente más alto de la columna1 en el resultado.
Ahora, finalmente lo canalizo cut
con el delimitador especificado como espacio e imprimo -f3
cuál es el resultado deseado.
Pruebas
cat filename
112030 /opt/oracle/app/oracle/product/11.2.0
121010 /opt/oracle/app/oracle/product/12.1.0
2312 /hello/some/other/path
3423232 /this/is/really/big/number
342 /ok/not/the/maximum/number
9999899 /Max/number
9767 /average/number
Ahora, después de ejecutar el comando anterior para la entrada como se muestra arriba, obtengo la salida como,
/Max/number
Puedes hacerlo con
AWK
.Aquí la primera columna de cada línea se compara con la variable
max
(que inicialmente es 0). Si la primera columna tiene un valor mayor quemax
la segunda columna se almacena en la variableline
, esto continúa para todas y cada una de las líneas del archivo.Al final del archivo, la
END
regla se ejecuta para imprimir laline
variable.fuente
fuente
sort -k1 -n filename | tail -1 | awk '{print $2}'
fuente
Simplemente se puede solucionar el problema mediante el uso
sort
de comandosSalida:
fuente
cat
, sort puede tomar archivos de entrada directamente.fuente