Це має працювати:
awk -v max=0 '{if($1>max){want=$2; max=$1}}END{print want} ' version.log
В -v max=0встановлює змінну , maxщоб 0, таким чином , для кожного рядка, перше поле порівнюється з поточним значенням max. Якщо воно більше, maxвстановлюється значення першого поля і wantвстановлюється в поточний рядок. Коли програма обробила весь файл, wantдрукується поточне значення .
Редагувати
Я не перевіряв awkрішення раніше, і мені справді було погано надати його. У будь-якому випадку, редагована версія відповіді повинна працювати (спасибі тердону за її виправлення), і я також перевірив наведене нижче.
sort -nrk1,1 filename | head -1 | cut -d ' ' -f3
Я їду sortна першому полі, де,
- -n вказує числове сортування.
- -r вказує зворотний результат сортування.
- -k1,1 вказує перше поле для сортування, яке має відбутися.
Тепер, після сортування, я записую результат і тільки отримую перший результат, який дасть мені чисельно найвище значення стовпця1 в результаті.
Тепер я, нарешті, передаю його cutв роздільник, вказаний як пробіл, і друк, -f3який є запланованим результатом.
Тестування
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
Тепер, після того як я запускаю вищезгадану команду для введення, як зазначено вище, я отримую висновок як,
/Max/number