Це має працювати:
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