Esto debería funcionar:
awk -v max=0 '{if($1>max){want=$2; max=$1}}END{print want} ' version.log
Los -v max=0establece la variable maxa 0y, a continuación, para cada línea, el primer campo se compara con el valor actual de max. Si es mayor, maxse establece en el valor del primer campo y wantse establece en la línea actual. Cuando el programa ha procesado todo el archivo, wantse imprime el valor actual de .
Editar
No probé la awksolució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 sorten 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 cutcon el delimitador especificado como espacio e imprimo -f3cuá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 quemaxla 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
ENDregla se ejecuta para imprimir lalinevariable.fuente
fuente
sort -k1 -n filename | tail -1 | awk '{print $2}'fuente
Simplemente se puede solucionar el problema mediante el uso
sortde comandosSalida:
fuente
cat, sort puede tomar archivos de entrada directamente.fuente