![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Количество строк в файле (Perl-скрипт) | Jisha | Shell программирование и сценарии | 5 | 05-20-2008 08:11 AM |
| Скрипт для сканирования proclog файлы | deeprajn95 | Shell программирование и сценарии | 3 | 05-12-2008 07:25 AM |
| Perl: Вернувшись из ссылки с модификатором | cooldude | Shell программирование и сценарии | 8 | 03-19-2008 09:49 AM |
| Perl скрипт для проверки на основе файлов | gholdbhurg | Shell программирование и сценарии | 1 | 03-05-2008 10:53 PM |
| Как сканировать только новые строки добавлены в файл? | redlotus72 | UNIX для чайников Вопросы И Ответы | 3 | 04-28-2005 04:34 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Perl скрипт для проверки задней линии
Привет Perl гуру,
Я этот файл с помощью сканирования. Пример строки ниже: 2008031A, USERNAME, 12345, дайте ABC, XYZ считать, сделка, представленный 2008031B, USERNAME, 12346, ожидая переработки 2008031C, USERNAME, 12347, Получение ответа 2008031D, USERNAME, 12348, это не является действительным решения 2008031E, USERNAME, 12349, государство не 2008031F, USERNAME, 12350, Система \u003d 0 2008031G, USERNAME, 12351, в ожидании нового txns 2008031H, кто-то, 12352, дайте ЕНТО принять GVO, сделка, представленный 2008031I, кто-то, 12353, ожидая переработки 2008031J, кто-то, 12354, Получение ответа 2008031K, кто-то, 12355, это не является действительным решения 2008031L, кто-то, 12356, государство не 2008031M, кто-то, 12357, Система \u003d 0 2008031N, кто-то, 12358, в ожидании нового txns Мне нужно искать для этого шаблона -> "Это не является действительным решения" Когда одна линия обнаружено совпадение, она должна написать в лог <UserName>, а также давать и принимать значения (например, ABC, XYZ) После сканирования выше файлов, лог ошибок должны появиться: ОШИБКА: Имя пользователя (ABC, XYZ) ОШИБКА: Кто-то (ЕНТО, GVO) Любые идеи? Заранее благодарим вас, ребята. |
|
||||
|
Может быть перемешан операции в лог-файл, или все подробности сделки будут на соседние линии, и все прилегающие линии принадлежат к одной сделке, или знак границы до следующей сделки? Ли сделка всегда начинаются с "давать" и "принять" вещи? Ли сделка всегда заканчивается на "В ожидании нового txns" линия? Код:
vnix$ perl -ne 'if (/give ([^,]*), take ([^,]*), transaction submitted/) { $give = $1; $take = $2; }
if (/Waiting for new txns/) { $give = $take = undef; }
if (/, ([^,]*), [^,]*, This is not a valid/) { print "UPPERCASE: $1 ($give, $take)\n"}' /tmp/txn
UPPERCASE: USERNAME (ABC, XYZ)
UPPERCASE: SOMEONE (STE, GVO)
Думаю, все заглавные является свидетельством того, что это ФИНАНСОВЫЙ СЕКТОР мы занимаемся здесь ...? |
|
||||
|
рассмотреть и AWK версии: Код:
csadev:/home/jmcnama> cat t.awk
awk -F, 'BEGIN { give=""}
{
if($4 ~ /give/){
give=sprintf("%s%,%s" ,
substr($4, length($4)-3),
substr($5, length($5)-3 ) )
}
if($4 ~ /This is not a valid dealing/) {
printf("ERROR: %s (%s)\n", $2, give)
}
} ' filename
csadev:/home/jmcnama> cat filename
2008031A, USERNAME, 12345, give ABC, take XYZ, transaction submitted
2008031B, USERNAME, 12346, waiting for processing
2008031C, USERNAME, 12347, Retrieving response
2008031D, USERNAME, 12348, This is not a valid dealing
2008031E, USERNAME, 12349, State has failed
2008031F, USERNAME, 12350, System=0
2008031G, USERNAME, 12351, Waiting for new txns
2008031H, SOMEONE, 12352, give STE, take GVO, transaction submitted
2008031I, SOMEONE, 12353, waiting for processing
2008031J, SOMEONE, 12354, Retrieving response
2008031K, SOMEONE, 12355, This is not a valid dealing
2008031L, SOMEONE, 12356, State has failed
2008031M, SOMEONE, 12357, System=0
2008031N, SOMEONE, 12358, Waiting for new txns
csadev:/home/jmcnama> t.awk
ERROR: USERNAME ( ABC, XYZ)
ERROR: SOMEONE ( STE, GVO)
|
|
||||
|
Привет эры / Jim,
Спасибо за быстрый ответ. >>> Привет эры Мои ответы ниже: 1. Может быть перемешан операции в лог-файл, или все подробности сделки будут на соседние линии, и все прилегающие линии принадлежат к одной сделке, или знак границы до следующей сделки? ANS: Да, все детали сделки будут на соседние линии, и все прилегающие линии принадлежат к одному и тому же пользователю / сделки. 2. Ли сделка всегда начинаются с "давать" и "принять" вещи? Ли сделка всегда заканчивается на "В ожидании нового txns" линия? ANS: Да, что всегда будет в начале строки всех txns, но в конце строки могут отличаться. Для успешных, существует обыкновение быть любым "Это не является действительным решение" линии между ними. >>> Кстати, если это возможно, я бы предпочел этого в Perl ![]() Надежды услышать от других гуру. Оцените это очень много. Последний раз редактировалось gholdbhurg; на 03-18-2008 12:41 PM.. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|