Страница 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