Вопрос по perl – Помещение 2 последовательных строк одинакового шаблона в одну строку

0

Я хочу разобрать этот набор строк, чтобы, если получить такой же шаблон, как**<[email protected]>** в последовательных строках он должен быть напечатан одинарным шрифтом с "quot;" между двумя.

q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                     (host map: lookup (my.local.domain): deferred)
                                             <[email protected]>
                                             <[email protected]>
q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                     (host map: lookup (my.local.domain): deferred)
                                             <[email protected]>
                                             <[email protected]>

Как я могу сделать это в Perl?

Люди понижают голос без указания причины. tuxuday
Опубликуйте свою работу. Я удалил свое решение, поскольку вы не опубликовали свою работу. tuxuday

Ваш Ответ

1   ответ
2

#!/usr/bin/env perl
use strict;
use warnings;

my $str = <<'EOS';
q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                     (host map: lookup (my.local.domain): deferred)
                                             <yagyava[email protected]>
                                             <[email protected]>
q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                     (host map: lookup (my.local.domain): deferred)
                                             <[email protected]>
                                             <[email protected]>
EOS

$str =~ s/(?<=<yagyavalkbhatt\@yahoo.com>)\s+(?=<yagyavalkbhatt\@yahoo.com>)/,/g;
print $str;

Выход:

q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                 (host map: lookup (my.local.domain): deferred)
                                         <[email protected]>,<[email protected]>
q2VDWKkY010407  2221878 Sat Mar 31 19:37 <Mailer-daemon>
                 (host map: lookup (my.local.domain): deferred)
                                         <[email protected]>,<[email protected]>
Спасибо Flesk Как напечатать содержимое текстового файла внутри EOS или $ _ Yagyavalk Bhatt
Спасибо, flesk Но проблема в том, что вывод, который вы показываете, может отличаться, если второй последовательный идентификатор электронной почты отличается и извините, но мне не нужны вышеуказанные значения, кроме тех адресов электронной почты Yagyavalk Bhatt
@yagyavalkbhatt: Если ваш контент находится в текстовом файле, вы должны прочитать из дескриптора файла:open my $fh, "<", "file.txt" or die "Oops: $!\n";while (<$fh>) {# extract email addresses from $_}
@yagyavalkbhatt: Вы хотите сказать, что хотите извлечь все адреса электронной почты из строки? Если это справедливое предположение, что все адреса электронной почты включены в< а также> my @emails = $str =~ /<([^<\@]+\@[^>]+)>/g; должен сделать это.

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