У меня есть сценарий Perl, который подсчитывает, сколько раз слово «плохо» выходит в файл, а если оно существует, оно отправит электронное письмо оповещения.Подсчитайте, сколько раз слово появляется в файле и отправляется по электронной почте, если появляется слово 5+ раз
Я пытаюсь получить сценарий для отправки электронной почты только в том случае, если слово «плохое» происходит пять или более раз и ничего не делать, если слово встречается менее пяти.
Я также пытаюсь сделать так, чтобы, если слово «плохое» происходит пять или более раз, запустите счет после пяти для оповещения по электронной почте.
Например, если слово «плохое» происходит семь раз, в уведомлении по электронной почте говорится, что слово «плохое» происходит три раза (всегда игнорируя первые пять раз, когда в файле происходит «плохое»).
Пример выходного файла
bad
bad
bad
bad
bad
bad
bad
после слова «плохой» происходит в семь раз, оповещение по электронной почте должен выйти произнося слово «плохо» было записано три раза.
Вот код до сих пор:
#!/usr/bin/perl
use strict;
my $file = 'output.txt';
my $mark = 'bad';
open my $f, "<$file" or die "Error open file: $!\n";
my $counter = 0;
while (my $line = <$f>) {
if ($line =~ /$mark/) {
$counter++;
}
}
if ($counter) {
my $body = "Warning the word bad was recorded $counter times";
my $cmd_email = "echo $body | mailx -s \"Alert error\" tneal01\@gmail.com";
system($cmd_email) == 0 or die "Error sending email -- $!";
}
Я думаю, что если вы говорите * выходы * вы имеете в виду * существует *. Я редактировал ваш вопрос, чтобы использовать * происходит *, который лучше английский, но * появляется * также возможно. Вы можете отменить мое редактирование, если вы предпочитаете – Borodin