The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Сортировка 16-разрядных чисел, !*! universite, 17-Мрт-14, 02:25  [смотреть все]
Есть список:

...
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

  • Сортировка 16-разрядных чисел, !*! universite, 04:49 , 17-Мрт-14 (2)

    ...  | sort -k 2 | tail -1 | awk '$1 ~ /ngeth/ { print $1;}' | tr -d ngeth

    Как-то слишком длинно и не по фен-шую :(

  • Сортировка 16-разрядных чисел, !*! михалыч, 09:36 , 17-Мрт-14 (3)
    на те вам

    справа на лево
    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 }' file

    now feng shui? you understand?

    • Сортировка 16-разрядных чисел, !*! Andrey Mitrofanov, 11:47 , 17-Мрт-14 (4)
      > на те вам
      > справа на лево
      > 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

      • Сортировка 16-разрядных чисел, !*! universite, 14:30 , 17-Мрт-14 (5)
        > Нет, 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


        • Сортировка 16-разрядных чисел, !*! михалыч, 16:45 , 17-Мрт-14 (6)
          > Нет. Все три примеры выдают пустую строку.

          не верю ))

          Ну подогнать под ответ могли бы и сами, вконец разленились? ))

          awk '$2~/ngeth/ {if(max<$6){max=sprintf(x$6);number=$2=substr($2,6)}}END{print number}' file

          16

          • Сортировка 16-разрядных чисел, !*! universite, 16:59 , 17-Мрт-14 (7)
            >> Нет. Все три примеры выдают пустую строку.
            > не верю ))
            > Ну подогнать под ответ могли бы и сами, вконец разленились? ))

            Подгонять под ответ - это ведь не для диплома :)
            У мну уже перед глазами плывут переменные, разрядности и лексика разных языков

            > awk '$2~/ngeth/ {if(max<$6){max=sprintf(x$6);number=$2=substr($2,6)}}END{print
            > number}' file
            > 16

            так работает.

            • Сортировка 16-разрядных чисел, !*! михалыч, 17:05 , 17-Мрт-14 (8)
              > Подгонять под ответ - это ведь не для диплома :)

              да "шутю" это я так, криво ))

              > У мну уже перед глазами плывут переменные, разрядности и лексика разных языков

              ну так надо выспаться и отдохнуть, работа не волк..

              да, и вариант 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}'

              • Сортировка 16-разрядных чисел, !*! Andrey Mitrofanov, 17:50 , 17-Мрт-14 (9)
                >> Подгонять под ответ - это ведь не для диплома :)
                > да "шутю" это я так, криво ))

                Студент - молодец. Заинтриговал дедушек.

                > да, и вариант 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>..." хотя бы, но это я уже привередничаю.

              • Сортировка 16-разрядных чисел, !*! universite, 17:56 , 17-Мрт-14 (10)
                >> Подгонять под ответ - это ведь не для диплома :)
                > да "шутю" это я так, криво ))
                >> У мну уже перед глазами плывут переменные, разрядности и лексика разных языков
                > ну так надо выспаться и отдохнуть, работа не волк..

                да-да. писал вопросы в  конце "рабочего дня".

                Этот скрипт уже, наверное, не понадобится.
                Я нашел более простой способ определять вланы у неименованных интерфесов ngeth%%.

  • Сортировка 16-разрядных чисел, !*! pavlinux, 21:48 , 17-Мрт-14 (11)
    >[оверквотинг удален]
    > 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру