The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
grep'ing файл до определенного появляется сообщение pallak7 Shell программирование и сценарии 3 04-23-2009 12:48 PM
grep'ing для конкретных справочников, а также с использованием данных для перемещения файлов JayC89 Shell программирование и сценарии 1 12-06-2008 03:37 AM
Ускорение скрипт (поиск, grep и за цикл) Дэйв Stockdale UNIX для чайников Вопросы И Ответы 8 08-11-2008 05:36 AM
Ускорение обработки файла dlam Shell программирование и сценарии 4 07-19-2008 01:47 PM
ускорить составление по SUN Solaris среды swamymns Shell программирование и сценарии 2 07-12-2006 01:06 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 04-21-2009
elinenbe elinenbe is offline
Зарегистрированный пользователь
  
 

Регистрация: Декабрь 2008
Сообщений: 8
Question grep'ing и sed'ing куски в Баш ... Нужна помощь по ускорению лог парсера.

У меня есть файл, который составляет 20 - 80 + МБ, что представляет собой определенный тип файла.

Он бревна из наших процессах, и этот процесс представляет собой многопрофильную жил. Таким образом, файл журнала рода беспорядок. Вот пример:

В лог-файл выглядит следующим образом: "ДАТА ВРЕМЯ - THREAD ID - Подробная информация", а новый файл создается на каждый день
Цитата:
20090409 000122 - BD0 - Приказ 123 начала сессии
20090409 000122 - BD0 - обработка 1
20090409 000122 - BD0 - Дополнительная обработка
20090409 000123 - EF0 - Приказ 234 начала сессии
20090409 000124 - EF0 - Обработка
20090409 000124 - BD0 - Обработка 2
20090409 000125 - BD0 - Дополнительная обработка
20090409 000125 - EF0 - Обработка
20090409 000125 - DD1 - Отмена 345 начала сессии
20090409 000125 - DD1 - Обработка
20090409 000126 - DD1 - Обработка 2
20090409 000126 - BD0 - Приказ 123 закрытие
20090409 000127 - 11F - 543 запросов, начиная сессии
20090409 000127 - 11F - Обработка
..
..
20090409 000135 - 11F - Запрос 543 закрытие
..
20090409 000140 - EF0 - Приказ 234 закрытие
..
..
..
20090409 000143 - DD1 - 345 Отменить закрытие
Теперь, вот, где она получает быть более ... Мне нужно вытащить из линий "Запуск сессия" на "Завершение сессии" для каждого Thread ID, и складывать их в отдельные файлы. Тем не менее, Thread ID Может быть продублированы в течение дня - но, как правило, не на много часов.

А сессия может длиться от 30 секунд до 4 минут или около того (~ 1200 строк) в лог-файл, и не может быть до 20 одновременных сессий.

Теперь я имею что-то работает - хотя и довольно медленно. Я в конечном итоге grepping и sedding файл снова и снова. Когда файл становится большой, занимает огромное количество времени. Я надеялся, что здесь кто-то может мне помочь оптимизировать это. Если можно, я хотел бы использовать Bash.

Спасибо,
Эрик

Вот код я, что работает, но _slow_

Код:
    if [[ -e "$log_file" ]]
    then
        echo "parsing: "$log_file
        grep "starting session" $log_file | while read line 
        do
            thread=`echo $line | cut -d' ' -f4`
            sessiontype=`echo $line | cut -d' ' -f6`
            sessionnumber=`echo $line | cut -d' ' -f7`

            echo "  first line of session: "${line:0:25}"..."
            line2=`echo  - $thread - $sessiontype $sessionnumber shutting down`
            echo "  last line of session: "${line2:0:25}"..."
            sed -n "/$line/,/$line2/p" $log_file | grep " - $thread - ">session.$thread.$sessiontype.$sessionnumber
        done
    ....
Это дает мне несколько файлов, что на примере журнала выше будет создано, как показано ниже:
Цитата:
Файл: session.BD0.Order.123
20090409 000122 - BD0 - Приказ 123 начала сессии
20090409 000122 - BD0 - обработка 1
20090409 000122 - BD0 - Дополнительная обработка
20090409 000124 - BD0 - Обработка 2
20090409 000125 - BD0 - Дополнительная обработка
20090409 000126 - BD0 - Приказ 123 закрытие

Файл: session.DD1.Cancel.345
20090409 000125 - DD1 - Отмена 345 начала сессии
20090409 000125 - DD1 - Обработка
20090409 000126 - DD1 - Обработка 2
..
..
..
20090409 000143 - DD1 - 345 Отменить закрытие

Файл: session.11F.Query.543
20090409 000127 - 11F - 543 запросов, начиная сессии
20090409 000127 - 11F - Обработка
..
..
20090409 000135 - 11F - Запрос 543 закрытие

Файл: session.EF0.Order.234
20090409 000123 - EF0 - Приказ 234 начала сессии
20090409 000124 - EF0 - Обработка
20090409 000125 - EF0 - Обработка
20090409 000140 - EF0 - Приказ 234 закрытие
 

Закладки

Теги
Баш, grep, SED

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 11:25 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0