Как из строки выбрать e-mail-адресс??
Добавлено: 2008-06-21 12:45:40
Собсно сабж.
Каждые 14 миллиардов лет учёные запускают андронный коллайдер
https://forum.lissyara.su/
Код: Выделить всё
zg# echo "My email is zg@mail.ch!" | grep -Eo '[a-z]+@[a-z]+\.[a-z]+'
zg@mail.ch
zg#
Код: Выделить всё
mail -s Test $stroka | grep -Eo '[a-z]+@[a-z]+\.[a-z]+\.[a-z]+' ??
Код: Выделить всё
zg# echo "My email is zg@mail.ch!" | grep -Eo '[a-z]+@[a-z]+\.[a-z]+' | xargs -I % echo sendmail % "'It is some spam for %'"
sendmail zg@mail.ch 'It is some spam for zg@mail.ch'
zg#
risk94 писал(а):чего-то не уходит
работает отдельно?sendmail zg@mail.ch 'It is some spam for zg@mail.ch'
Код: Выделить всё
#!/bin/sh
cat ./full |
{
while read stroka
do
echo $stroka | grep -Eo '[0-9,a-z]+@[a-z]+\.[a-z]+\.[a-z]+' | xargs -I % mail %
done
}
Код: Выделить всё
grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full | xargs -I % mail % "It's spam"
Код: Выделить всё
A message that you sent contained a recipient address that was incorrectly
constructed:
It's spam missing or malformed local part (expected word or "<")
The message has not been delivered to any recipients.
------ This is a copy of your message, including all the headers. ------
To: It's spam, root@ahou.local
Код: Выделить всё
if (!$email =~ /^[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*\\@[a-zA-Z\\.-\\d]+\\.[a-zA-Z]{2,4}$/) ) {
print "не соответсвет";
{
читал?zg писал(а):man mail
Код: Выделить всё
-s subject
Specify subject on command line. (Only the first argument after
the -s flag is used as a subject; be careful to quote subjects
containing spaces.)
Код: Выделить всё
#!/bin/sh
mymail()
{
echo "test" | mail -s spam $1
}
grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full | xargs -I % mymail %
Код: Выделить всё
email_adress=`grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full`
echo "Тело сообщения" | mail -s 'Тема сообщения' $email_adress
risk94 писал(а):исче вопрос, в той же строке где и email, есть дата(формат: 06.06.2008), как сделать проверку с текущей?
Код: Выделить всё
my $data0="06.06.2008";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$mon++;
$year+=1900;
if ($mday<10) { $mday="0$mday"; }
if ($mon<10) { $mon="0$mon"; }
if ($min<10) { $min="0$min"; }
$date="$mday $mon $year";
$time="$hour:$min:$sec";
$cur_all_day=$mday+$mon*30+$year*365;
$curd=$mday.$mon.$yea;
if (! $data0 =~ $curd) {
print "erroe time";
}
Код: Выделить всё
vasya pupkin 192.168.0.1 vasya.p@mail.ru 06.06.2008
это файл и в нем все строки такого вида или разные?risk94 писал(а):строка типароюсь я в нете, роюсьКод: Выделить всё
vasya pupkin 192.168.0.1 vasya.p@mail.ru 06.06.2008
Не серчайте плиз, учусь, тока пока пытаюсь осилить шелл для начала, а потом уж перл.
по быстрячку не поулчаеться, vasya pupkin - это везде два слова может быть?risk94 писал(а):Да, это файл. в нем все строки такого вида.
По поводу линков на паги про ексим - не уловил.
Код: Выделить всё
open(MAIL, "/var/log/maillog");
while ($line = <MAIL>)
{
my ($month, $time, $servicename, $id) = split /\s+/, $line, 7;
}
Код: Выделить всё
open (MYFILE, "2.txt") || die "awibka";
my (@sdata)=<MYFILE>;
foreach $str (@sdata) {
($razdel, $period, $bla, $bla)=split(/ /;, $str);
}
Не, если в строке есть дата, которая равна текущей, то мне нужно отправить письмо по имейлу, который тоже есть в этой строкеProFTP писал(а):....
ты потом хочешь удалить те строки которые которые не совпали с датой?....