Архитектура компьютера в диалоговом скрипте

Это только первый sed, который нуждается в модификации, чтобы обработать все возможности, которые вы перечислили здесь. В частности, вместо того, чтобы обрабатывать все возможности в одном регенераторе, вам нужно будет обратиться к двум разным типам строк по отдельности - к виду, на котором ID сразу же следует первая - тире на строке, а другой вид, на котором он находится, помечен как ID= где-то в другом месте.

(   sed -e= -e's/- [({[] *\([0-9]*\) *[])}]/- \1 -/;t' \
            -e's/-\(.*[^, ]\)[, ]*ID=\([0-9]*\)[, ]\{0,1\}/- \2 -\1/' |
    paste   -d- - - |
    sort    -t- -nk3,3 -nk1,1 |
    sed     -e's/^[^-]*-//;:n' -e'h;$!N' \
            -e's/\(-\([^-]*-\).*[^ ]\) *\n\([^-]*-\)\{2\}\2/\1 - \3/;tn' \
            -ex\;:t -e's/\(\([^-]*-\)[^/]*\)- *\2/\1:::/;tt'   -e'p;g;D'
) <in >out

Здесь это второй раз, но записано с помощью -E-расширенного синтаксиса регулярного выражения. По крайней мере, это сработает с BSD/GNU/AST seds:

(   sed -Ee= -e's/- [({[] *([0-9]+) *[])}]/- \1 -/;t' \
             -e's/-(.*[^, ])[, ]*ID=([0-9]+)[, ]?/- \2 -\1/' |
    paste    -d- - - |
    sort     -t- -nk3,3 -nk1,1 |
    sed      -Ee's/^[^-]*-//;:n' -e'h;$!N' \
             -e's/(-([^-]+-).*[^ ]) *\n([^-]+-){2}\2/\1 - \3/;tn' \
             -ex\;:t -e's/(([^-]+-)[^/]*)- *\2/\1:::/;tt' -e'p;g;D'
) <in >out

Теперь я проверил это на конкатеннации всех ваших лог-данных:

6/13/2015 12:00:47 AM - {   562} START Web
6/13/2015 12:00:47 AM - Requested Web connection from 123.125.71.103[123.125.71.103], ID=562
6/13/2015 12:01:24 AM - {   563} START POP3
6/13/2015 12:01:24 AM - Requested POP3 connection from 10.127.251.37 [10.127.251.37], ID=563
6/13/2015 12:01:24 AM - (   563) USER test.mail@test.me
6/13/2015 12:01:24 AM - POP3 connection with 10.127.251.37 [10.127.251.37] ended. ID=563
6/13/2015 12:01:24 AM - {   563} END POP3
6/13/2015 12:01:24 AM - {   564} START POP3
6/13/2015 12:01:24 AM - Requested POP3 connection from 10.127.251.37 [10.127.251.37], ID=564
6/13/2015 12:01:24 AM - (   564) USER test.mail@test.me
6/13/2015 12:01:24 AM - POP3 connection with 10.127.251.37 [10.127.251.37] ended. ID=564
6/13/2015 12:01:24 AM - {   564} END POP3
6/13/2015 12:01:40 AM - Web connection with 123.125.71.103 [123.125.71.103] ended. ID=562
6/13/2015 12:01:40 AM - {   562} END Web
6/13/2015 2:15:09 AM - Starting delivery thread, ID=667
6/13/2015 2:15:09 AM - {   667} START Delivery
6/13/2015 2:15:09 AM - Active delivery threads (ID=667 start): 0
6/13/2015 2:15:09 AM - [   667] Delivering to test.mail@test.com
6/13/2015 2:15:09 AM - [   667] Forwarding mail...
6/13/2015 2:15:09 AM - [   667] Forwarding message to 1 address(es)
6/13/2015 2:15:09 AM - Delivery thread, ID=667, terminated after running for 0.031 seconds.
6/13/2015 2:15:09 AM - {   667} END Delivery
6/13/2015 2:15:09 AM - Active delivery threads (ID=667 end): 0

И моими результатами были:

6/13/2015 12:00:47 AM - 562 - START Web ::: Requested Web connection from 123.125.71.103[123.125.71.103] - 6/13/2015 12:01:40 AM - Web connection with 123.125.71.103 [123.125.71.103] ended. ::: END Web
6/13/2015 12:01:24 AM - 563 - START POP3 ::: Requested POP3 connection from 10.127.251.37 [10.127.251.37] ::: USER test.mail@test.me ::: POP3 connection with 10.127.251.37 [10.127.251.37] ended. ::: END POP3
6/13/2015 12:01:24 AM - 564 - START POP3 ::: Requested POP3 connection from 10.127.251.37 [10.127.251.37] ::: USER test.mail@test.me ::: POP3 connection with 10.127.251.37 [10.127.251.37] ended. ::: END POP3
6/13/2015 2:15:09 AM - 667 - Starting delivery thread ::: START Delivery ::: Active delivery threads (start): 0 ::: Delivering to test.mail@test.com ::: Forwarding mail... ::: Forwarding message to 1 address(es) ::: Delivery thread terminated after running for 0.031 seconds. ::: END Delivery ::: Active delivery threads (end): 0
0
29.12.2017, 04:23
0 ответов

Теги

Похожие вопросы