The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Скрипт в командной строке Linux, !*! Solmir, 28-Июл-14, 13:10  [смотреть все]
Всем привет.
Недавно начал осваивать работу в командной строке Linux.
Помогите, пожалуйста, с такой задачей.
Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
(1057=Y & 54=1 & 150=F & (value of tag14)=(value of tag 32))
Всё, кроме последнего условия получается считать с помощью grep.
a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
Основная проблема в сравнении значений 14-го и 32-го тэгов.
Как это сделать?
У меня лишь получилось вырезать из каждой записи кусок со значением 14-го тэга с помощью команд cat и awk.
Подумал, что получится сделать то же самое с 32-м тэгом, а потом как-то записать все элементы в массив и сравнить их.
Надеюсь на ваши советы.
  • Скрипт в командной строке Linux, !*! Andrey Mitrofanov, 13:28 , 28-Июл-14 (1) +1
    > Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
    > a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
    > Основная проблема в сравнении значений 14-го и 32-го тэгов.

    Очень заинтересовало Ваше сообщение. Расскажите, пожалуйста, кто такие "тагши в логах" и какая, новая для меня, технология их создаёт? Уж не journald ли?

    И Вам спасибо.

    • Скрипт в командной строке Linux, !*! Solmir, 13:39 , 28-Июл-14 (2)
      >> Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
      >> a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
      >> Основная проблема в сравнении значений 14-го и 32-го тэгов.
      > Очень заинтересовало Ваше сообщение. Расскажите, пожалуйста, кто такие "тагши в логах"
      > и какая, новая для меня, технология их создаёт? Уж не journald
      > ли?
      > И Вам спасибо.

      Что вы имели ввиду под выражением "тагши в логах"?

      • Скрипт в командной строке Linux, !*! Andrey Mitrofanov, 13:52 , 28-Июл-14 (3) +1
        >>> Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
        >>> a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
        >>> Основная проблема в сравнении значений 14-го и 32-го тэгов.
        >> Очень заинтересовало Ваше сообщение. Расскажите, пожалуйста, кто такие "тагши в логах"
        >> и какая, новая для меня, технология их создаёт? Уж не journald
        >> ли?
        >> И Вам спасибо.
        > Что вы имели ввиду под выражением "тагши в логах"?

        Извините, опечатался. "Таги" конечно. Строки в логах знаю, а кто такие "таги в логах" - нет. Даже гугль не помогает, duckduckgo с яндексом пишут про блоги. Неужели их можно grep-ать?

        • Скрипт в командной строке Linux, !*! Solmir, 14:20 , 28-Июл-14 (4) –1
          >[оверквотинг удален]
          >>>> a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
          >>>> Основная проблема в сравнении значений 14-го и 32-го тэгов.
          >>> Очень заинтересовало Ваше сообщение. Расскажите, пожалуйста, кто такие "тагши в логах"
          >>> и какая, новая для меня, технология их создаёт? Уж не journald
          >>> ли?
          >>> И Вам спасибо.
          >> Что вы имели ввиду под выражением "тагши в логах"?
          > Извините, опечатался. "Таги" конечно. Строки в логах знаю, а кто такие "таги
          > в логах" - нет. Даже гугль не помогает, duckduckgo с яндексом
          > пишут про блоги. Неужели их можно grep-ать?

          во всяком случае grep-ать получалось
          1175:O:N 20140211-06:51:33:626 : 8:FIXT.1.1 9=390 35=8 49=PARFX 56=c3dc34=1175 52=20140211-06:51:33.626 37=1402110000000000187 11=49uEcD400000639 41=49uEcD400000633 453=1 448=client 447=B 452=17 17=1402110101000000026 150=F 39=2 64=20140213 55=US 54=2 38=26000000 40=2 423=3 44=477.24 59=1 32=17000000 31=477.24 336=3 151=0 14=26000000 6=482.698846 60=20140211-06:51:33.635 381=12550170000 1057=N 8780=user1 10=041 448

  • Скрипт в командной строке Linux, !*! Andrey Mitrofanov, 11:58 , 29-Июл-14 (5)
    > Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
    > (1057=Y & 54=1 & 150=F & (value of tag14)=(value of tag 32))
    > Всё, кроме последнего условия получается считать с помощью grep.
    > a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`

    * Ошибка: -c нужен только в последнем grep.

    Файлов у меня нет, замегни : чем-н. типа cat файл1 файл2 файл3* |

    $ : |awk 'func value_of_tag(tg,aa){return match($0,"(^| )"tg"=([^ ]+)( |$)",aa)?aa[2]:""}value_of_tag(1057)=="Y"&&value_of_tag(54)==1&&value_of_tag(150)=="F"&&value_of_tag(14)==value_of_tag(32){cc++}END{print int(cc)}'
    0
    $ _




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

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