Скрипт обработки текста в shell работает медлено, нужно улучшение алгоритма
Добрый день,
Подскажите, как написать быстрый shell-скрипт. Задача такая:
Имеется log файл, например:
------------- cut -----------------
LST_START Starting BAT_R001
AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
LST_START Starting TIT_E001
LST_START Starting TIT_E002
LST_START Starting SER_R001
LST_START Starting TGE_R001
Internal error: no page 4
Internal error: no page 4
Internal error: no page 4
Internal error: no page 4
LST_START Starting FRX_R002
LST_START Starting BAT_R001
AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
LST_START Starting FRX_R001
LST_START Starting FRX_V002
LST_START Starting BAT_R001
AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
LST_START Starting FRX_V001
LST_START Starting BAT_R001
-------------- cut -----------------
Нужно вывести этот лог в таком виде:
-------------- cut -----------------
LST_START Starting BAT_R001: AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
LST_START Starting TGE_R001: Internal error: no page 4
LST_START Starting BAT_R001: AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
LST_START Starting BAT_R001: AP_TDS - Tds OCT 20080416 1 032353 not found in tds_get_flag
-------------- cut -----------------
т.е. вывести сам заголовок "LST_START Starting TGE_R001:" и рядом ошибку "Internal error: no page 4". Где нет ошибок просто игнорировать. Сам скрипт я написал, проблем нет, но когда таких строк около 8-10 тыс, то скрипт работает о-о-очень долго! Может у кого-то есть другое решение? Вот сам скрипт:
#!/bin/ksh
cat "$*" | while read LINE
do
t=`echo "$LINE" | grep "err" # для примера оставил err, а так файл с ошибками
r=`echo "$LINE" | grep "LST_START Starting"`
if [ -n "$r" ]; then
bt="$r"
fi
if [ -n "$t" ]; then
echo "$bt: $t" > ap_with_name_proc.txt
fi
:
done
cat ap_with_name_proc.txt | uniq > ap_with_name_proc_uniq.txt
echo "done."
exit 0
Ответ на:
комментарий
от shell-script
Ответ на:
комментарий
от shell-script
Ответ на:
комментарий
от shell-script
Ответ на:
комментарий
от DonkeyHot
Ответ на:
комментарий
от shell-script
Ответ на:
комментарий
от DonkeyHot
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [bash][dfm]Оно почему то всегда true. (2011)
- Форум Помогите найти ошибку в скрипте (2011)
- Форум echo перезаписывает вывод второй переменной поверх первой (2014)
- Форум Найти виновника (2024)
- Форум X2GO Администрирование (2020)
- Форум djvu2any - дарю :) (2007)
- Форум CPUmode - a userspace application for changing CPU powersaving modes (2012)
- Форум Отваливается соединение pptp (2006)
- Форум shell непойму в чем дело. (2008)
- Форум Проблема с автозапуском скрипта (2006)