Есть список:
...
ngeth0 00000191
ngeth1 00000194
ngeth2 00000197
ngeth3 0000019a
ngeth4 0000019d
ngeth5 000001a0
ngeth6 000001a3
ngeth7 000001a6
ngeth8 000001a9
ngeth9 000001ac
...Нужно найти максимальное значение ячейки второго столбца и выдать всю строку.
Идеально, выдать сразу номер этого ngeth.P.S. перл не предлагать
P.P.S. идеально обойтись чисто awk и sort
... | sort -k 2 | tail -1 | awk '$1 ~ /ngeth/ { print $1;}' | tr -d ngeth
Как-то слишком длинно и не по фен-шую :(
на те вамсправа на лево
awk '$2 > max {max = $2; number = $1 = substr ($1, 6)} END { print number }' fileслева на право
awk '{ if (max < $2) {max = $2; number = $1 = substr ($1, 6)} } END { print number }' filenow feng shui? you understand?
> на те вам
> справа на лево
> awk '$2 > max {max = $2; number = $1 = substr($1, 6)} END { print number }' file
> now feng shui? you understand?Нет, now:
awk 'NR==2&&sub("^ngeth","",$1)&&(max==""||$2>max){max=$2;number=$1}END{print number}' <file
> Нет, now:
> awk 'NR==2&&sub("^ngeth","",$1)&&(max==""||$2>max){max=$2;number=$1}END{print
> number}' <fileНет. Все три примеры выдают пустую строку.
# ngctl list
There are 24 total nodes:
Name: ngeth15 Type: eiface ID: 00000201 Num hooks: 1
Name: ipfw Type: ipfw ID: 00000001 Num hooks: 0
Name: em0 Type: ether ID: 00000002 Num hooks: 0
Name: em1 Type: ether ID: 00000003 Num hooks: 0
Name: ngeth16 Type: eiface ID: 00000204 Num hooks: 1
Name: ngeth0 Type: eiface ID: 000001c4 Num hooks: 1
Name: em2 Type: ether ID: 00000004 Num hooks: 0
Name: em3 Type: ether ID: 00000005 Num hooks: 2
Name: ngeth1 Type: eiface ID: 000001c7 Num hooks: 1
Name: ngeth2 Type: eiface ID: 000001ca Num hooks: 1
Name: vlan Type: vlan ID: 0000018f Num hooks: 19
Name: ngctl41992 Type: socket ID: 00000216 Num hooks: 0
Name: ngeth6 Type: eiface ID: 000001d6 Num hooks: 1
Name: ngeth7 Type: eiface ID: 000001d9 Num hooks: 1
Name: ngeth8 Type: eiface ID: 000001dc Num hooks: 1
Name: ngeth9 Type: eiface ID: 000001df Num hooks: 1
Name: ngeth3 Type: eiface ID: 000001e9 Num hooks: 1
Name: ngeth4 Type: eiface ID: 000001ec Num hooks: 1
Name: ngeth5 Type: eiface ID: 000001ef Num hooks: 1
Name: ngeth10 Type: eiface ID: 000001f2 Num hooks: 1
Name: ngeth11 Type: eiface ID: 000001f5 Num hooks: 1
Name: ngeth12 Type: eiface ID: 000001f8 Num hooks: 1
Name: ngeth13 Type: eiface ID: 000001fb Num hooks: 1
Name: ngeth14 Type: eiface ID: 000001fe Num hooks: 1
# ngctl list | awk 'NR==2&&sub("^ngeth","",$1)&&(max==""||$2>max){max=$2;number=$1}END{print number}'# ngctl list | awk ' $2 ~ /ngeth/ {print $2"\t"$6}' | sort -k 2 | tail -1 | awk '$1 ~ /ngeth/ { print $1;}' | tr -d ngeth
16
> Нет. Все три примеры выдают пустую строку.не верю ))
Ну подогнать под ответ могли бы и сами, вконец разленились? ))
awk '$2~/ngeth/ {if(max<$6){max=sprintf(x$6);number=$2=substr($2,6)}}END{print number}' file
16
>> Нет. Все три примеры выдают пустую строку.
> не верю ))
> Ну подогнать под ответ могли бы и сами, вконец разленились? ))Подгонять под ответ - это ведь не для диплома :)
У мну уже перед глазами плывут переменные, разрядности и лексика разных языков> awk '$2~/ngeth/ {if(max<$6){max=sprintf(x$6);number=$2=substr($2,6)}}END{print
> number}' file
> 16так работает.
> Подгонять под ответ - это ведь не для диплома :)да "шутю" это я так, криво ))
> У мну уже перед глазами плывут переменные, разрядности и лексика разных языков
ну так надо выспаться и отдохнуть, работа не волк..
да, и вариант Andrey Mitrofanov с sub тоже работает
awk '$2~/ngeth/ && sub("ngeth","",$2) {if(max<$6){max=sprintf(x$6);number=$2}}END{print number}' file
awk '$2~/ngeth/ && sub(/^ngeth/,"",$2) {if(max<$6){max=sprintf(x$6);number=$2}}END{print number}'
>> Подгонять под ответ - это ведь не для диплома :)
> да "шутю" это я так, криво ))Студент - молодец. Заинтриговал дедушек.
> да, и вариант Andrey Mitrofanov с sub тоже работает
> awk '$2~/ngeth/ && sub("ngeth","",$2) {if(max<$6){max=sprintf(x$6);number=$2}}END{print
> number}' fileНе-не, это не моё! :) Я "~/ngeth/" _заменил sub()-ом в условии. И [условие из] if во внешее условие вынкс. И против "sprintf(x" я решительно :D против.
Мой феншуй также требует "ngeth" -> "^ngeth" и ограничения по "NF>..." хотя бы, но это я уже привередничаю.
>> Подгонять под ответ - это ведь не для диплома :)
> да "шутю" это я так, криво ))
>> У мну уже перед глазами плывут переменные, разрядности и лексика разных языков
> ну так надо выспаться и отдохнуть, работа не волк..да-да. писал вопросы в конце "рабочего дня".
Этот скрипт уже, наверное, не понадобится.
Я нашел более простой способ определять вланы у неименованных интерфесов ngeth%%.
>[оверквотинг удален]
> ngeth2 00000197
> ngeth3 0000019a
> ngeth4 0000019d
> ngeth5 000001a0
> ngeth6 000001a3
> ngeth7 000001a6
> ngeth8 000001a9
> ngeth9 000001ac
> ...
>
Ну вы тут накуячили ...
... | sort -r -k2 | head -1
> Идеально, выдать сразу номер этого ngeth.
... | sort -r -k2 | head -1 | cut -d" " -f3
> Ну вы тут накуячили ...
У тебя сортировка вверх, а у меня вниз + 3 проверки входящих данных.