The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Скрипт в командной строке Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Скрипт в командной строке Linux"  –1 +/
Сообщение от Solmir (ok) on 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-м тэгом, а потом как-то записать все элементы в массив и сравнить их.
Надеюсь на ваши советы.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Скрипт в командной строке Linux"  +1 +/
Сообщение от Andrey Mitrofanov on 28-Июл-14, 13:28 
> Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
> a5=`grep 1057=Y _1 *путь к файлам* |grep -c 54=2 |grep -c 150=F|`
> Основная проблема в сравнении значений 14-го и 32-го тэгов.

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Скрипт в командной строке Linux"  –1 +/
Сообщение от Solmir (ok) on 28-Июл-14, 14:20 
>[оверквотинг удален]
>>>> 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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Скрипт в командной строке Linux"  +/
Сообщение от Andrey Mitrofanov on 29-Июл-14, 11:58 
> Нужно посчитать в логах количество строк, которые удовлетворяли бы таким значениям тэгов.
> (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
$ _

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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