Страница 1 из 1
Как сделать что-то подобное?
Добавлено: 2010-04-22 5:40:35
levantuev
Как сделать что бы две команды выводили в одну строку результат?
Код: Выделить всё
cat files.log | grep BlackList | awk '{print $1}'
cat files.log | grep Showuser| awk '{print $5}'
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 9:49:30
Shuba
levantuev писал(а):Как сделать что бы две команды выводили в одну строку результат?
Код: Выделить всё
cat files.log | grep BlackList | awk '{print $1}'
cat files.log | grep Showuser| awk '{print $5}'
Код: Выделить всё
echo `cat files.log | grep BlackList | awk '{print $1}'` `cat files.log | grep Showuser| awk '{print $5}'`
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 9:58:16
hizel
Код: Выделить всё
cat files.log | egrep (BlackList|Showuser) | awk бла бла
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 10:47:35
levantuev
hizel писал(а):Код: Выделить всё
cat files.log | egrep (BlackList|Showuser) | awk бла бла
Неверно указанные ().
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 10:50:36
hizel
ну в ковычки сунуть :-\
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 10:58:58
levantuev
Сунул, в итоге вышло так:
Код: Выделить всё
22.04.2010 16:57:45 INFO [CheckBlackList] ANI '00:25:22:07:F6:D5' (User 'z101279') is clean
22.04.2010 16:57:45 INFO [ProcessAuthRequests] Access-Accept
22.04.2010 16:58:26 INFO [CheckBlackList] ANI '00:0F:EA:78:EF:DF' (User 'z000380') is clean
22.04.2010 16:58:26 INFO [ProcessAuthRequests] Blocked
а нужно сделать типа так:
Код: Выделить всё
22.04.2010 16:58:26 INFO ANI '00:25:22:07:F6:D5' (User 'z101279') is clean Access-Accept
22.04.2010 16:58:26 INFO ANI '00:0F:EA:78:EF:DF' (User 'z000380') is clean Blocked
т.е две строки объединить и у второй строки взять только Blocked или Access-Accept
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 11:03:21
levantuev
Код: Выделить всё
echo `cat files.log | grep BlackList | awk '{print $1}'` `cat files.log | grep Showuser| awk '{print $5}'`
а этот вариант пишет все в одну строку
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 12:31:28
Shuba
levantuev писал(а):Код: Выделить всё
echo `cat files.log | grep BlackList | awk '{print $1}'` `cat files.log | grep Showuser| awk '{print $5}'`
а этот вариант пишет все в одну строку
С тебя бутылка виртуального пива

Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 12:47:37
levantuev
Пиво, не вопрос, тока помогите сделать

Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 14:00:17
Shuba
Э... моя твоя не понимай. Так пишет мой вариант всё в одну строку...
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 16:11:43
Гость
телепатический парсер сломался, но может что-то вроде
Код: Выделить всё
$ cat files.log | awk '/BlackList/ { print $1 } /Showuser/ { print $5 }'
откуда cat(1) можно выкинуть
Re: Как сделать что-то подобное?
Добавлено: 2010-04-22 16:50:34
terminus
levantuev писал(а):Как сделать что бы две команды выводили в одну строку результат?
Код: Выделить всё
cat files.log | grep BlackList | awk '{print $1}'
cat files.log | grep Showuser| awk '{print $5}'
http://www.freebsd.org/cgi/man.cgi?quer ... ormat=html
Код: Выделить всё
cat files.log | grep BlackList | awk '{print $1}' > ./file1
cat files.log | grep Showuser| awk '{print $5}' > ./file2
paste ./file1 ./file2
Re: Как сделать что-то подобное?
Добавлено: 2010-04-24 4:18:35
x6e6564
если кол-во "столбцов" фиксировано, то обработать доп. | xargs -n 10
Код: Выделить всё
cat /tmp/test
22.04.2010 16:57:45 INFO [CheckBlackList] ANI '00:25:22:07:F6:D5' (User 'z101279') is clean
22.04.2010 16:57:45 INFO [ProcessAuthRequests] Access-Accept
22.04.2010 16:58:26 INFO [CheckBlackList] ANI '00:0F:EA:78:EF:DF' (User 'z000380') is clean
22.04.2010 16:58:26 INFO [ProcessAuthRequests] Blocked
cat /tmp/test | xargs -n 15
22.04.2010 16:57:45 INFO [CheckBlackList] ANI 00:25:22:07:F6:D5 (User z101279) is clean 22.04.2010 16:57:45 INFO [ProcessAuthRequests] Access-Accept
22.04.2010 16:58:26 INFO [CheckBlackList] ANI 00:0F:EA:78:EF:DF (User z000380) is clean 22.04.2010 16:58:26 INFO [ProcessAuthRequests] Blocked
Re: Как сделать что-то подобное?
Добавлено: 2010-04-24 12:39:04
levantuev
x6e6564 писал(а):если кол-во "столбцов" фиксировано, то обработать доп. | xargs -n 10
Код: Выделить всё
cat /tmp/test
22.04.2010 16:57:45 INFO [CheckBlackList] ANI '00:25:22:07:F6:D5' (User 'z101279') is clean
22.04.2010 16:57:45 INFO [ProcessAuthRequests] Access-Accept
22.04.2010 16:58:26 INFO [CheckBlackList] ANI '00:0F:EA:78:EF:DF' (User 'z000380') is clean
22.04.2010 16:58:26 INFO [ProcessAuthRequests] Blocked
cat /tmp/test | xargs -n 15
22.04.2010 16:57:45 INFO [CheckBlackList] ANI 00:25:22:07:F6:D5 (User z101279) is clean 22.04.2010 16:57:45 INFO [ProcessAuthRequests] Access-Accept
22.04.2010 16:58:26 INFO [CheckBlackList] ANI 00:0F:EA:78:EF:DF (User z000380) is clean 22.04.2010 16:58:26 INFO [ProcessAuthRequests] Blocked
ваш вариант идеален, вот то что нужно было сделать!!! Но к сожалению лог немножко другой структуры:
Код: Выделить всё
24.04.2010 14:18:04 INFO [CheckBlackList] ANI '00:24:81:44:B6:92' (User 'z100185') is clean
24.04.2010 14:18:04 INFO [AuthenticateFromDatabase] User: 'z100185', bill by traffic, unlimited session timeout (86400)
24.04.2010 14:18:04 INFO [GetClientIPAndNetMask] Client IP/Netmask: 95.167.81.158/255.255.255.255
24.04.2010 14:18:04 INFO [ProcessAuthRequests] Access-Accept
24.04.2010 14:18:07 INFO [CheckBlackList] ANI '00:24:81:44:B6:92' (User 'z100185') is clean
24.04.2010 14:18:07 INFO [AuthenticateFromDatabase] User: 'z100185', bill by traffic, unlimited session timeout (86400)
24.04.2010 14:18:07 INFO [GetClientIPAndNetMask] Client IP/Netmask: 95.167.81.159/255.255.255.255
24.04.2010 14:18:07 INFO [ProcessAuthRequests] Access-Accept
24.04.2010 14:18:09 INFO [CheckBlackList] ANI '00:11:09:9D:6B:47' (User 'z100827') is clean
24.04.2010 14:18:09 INFO [AuthenticateFromDatabase] User: 'z100827', bill by traffic, unlimited session timeout (86400)
24.04.2010 14:18:09 INFO [GetClientIPAndNetMask] Client IP/Netmask: 95.167.81.160/255.255.255.255
24.04.2010 14:18:09 INFO [ProcessAuthRequests] Access-Accept
24.04.2010 14:18:27 INFO [CheckBlackList] ANI '00:22:68:6A:27:B6' (User 'z100840') is clean
24.04.2010 14:18:27 INFO [AuthenticateFromDatabase] User: 'z100840', bill by traffic, unlimited session timeout (86400)
24.04.2010 14:18:27 INFO [GetClientIPAndNetMask] Client IP/Netmask: 95.167.81.161/255.255.255.255
24.04.2010 14:18:27 INFO [ProcessAuthRequests] Access-Accept
Пожалуйста помогите сделать что бы был такой же результат, только из вышеуказанного лога
Re: Как сделать что-то подобное?
Добавлено: 2010-04-27 7:14:08
x6e6564
Последнее и начальное не совпадают (нету Showuser).
Как сделать что бы две команды выводили в одну строку результат?
Код: Выделить всё • Развернуть
cat files.log | grep BlackList | awk '{print $1}'
cat files.log | grep Showuser| awk '{print $5}'
Проще было выложить кусок лога и нужный вид.
А так по нижеслед.
Код: Выделить всё
grep -E "BlackList|ProcessAuthRequests" /tmp/test | xargs -n 15