URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 33979
[ Назад ]

Исходное сообщение
"Помогите написать скрипт"

Отправлено ice_one1 , 28-Авг-03 11:14 
Здраствуйте все возникла проблема
решил немного автоматизировать свою работу
суть следующая есть файл text в которов например такое
;
0000001
Коля
Позвонить 5.10 в 12.00
;
0000002
Вася
Встреча 15.10 в 13.00
;
и т.д.
и еще один файл mail с таким содержанием
0000001 kolya@mail.ru
0000002 vasya@mail.ru
и т.д.
Надо отправить на адрес kolya@mail.ru текст
Коля
Позвонить 5.10 в 12.00
Как это правильнее реализовать

Содержание

Сообщения в этом обсуждении
"Помогите написать скрипт"
Отправлено Вася , 28-Авг-03 13:28 
>Здраствуйте все возникла проблема
>решил немного автоматизировать свою работу
>суть следующая есть файл text в которов например такое
>;
>0000001
>Коля
>Позвонить 5.10 в 12.00
>;
>0000002
>Вася
>Встреча 15.10 в 13.00
>;
>и т.д.

задача несколько упростится если первый файл будет формата:
0000001:Коля Позвонить 5.10 в 12.00:
0000002:Вася Встреча 15.10 в 13.00:
второй тоже можно сделать в таком же формате:
0000001:kolya@mail.ru:
0000002:vasya@mail.ru:

>и т.д.
>Надо отправить на адрес kolya@mail.ru текст
>Коля
>Позвонить 5.10 в 12.00
>Как это правильнее реализовать



"Помогите написать скрипт"
Отправлено Вася , 28-Авг-03 13:43 
#!/usr/bin/perl
open(F,"</path to file mail");
open(T,"</path to file text");
while(<F>){
           ($num,$mail)=split(/:/,$_);
            while(<T>){
                       ($number,$message)=split(/:/,$_);
                        if ($num eq $number) {
                        open(tmp,">/path to you tmp file");
                        print tmp $message;
                        close(tmp);
                        &sender;}
                        };
};
close(F);
close(T);
#
sub sender{
open(S,`mail $mail </path to you tmp file`);
}
#
вот чтото типа этого если я все правильно понял, писал на скорую руку могут быть ошибки... )

"Помогите написать скрипт"
Отправлено HFSC , 28-Авг-03 13:53 
>#!/usr/bin/perl
>open(F,"</path to file mail");
>open(T,"</path to file text");
>while(<F>){
>           ($num,$mail)=split(/:/,$_);
>
>            while(<T>){
>            
>          
>($number,$message)=split(/:/,$_);
>            
>          
> if ($num eq $number) {
>                        open(tmp,">/path to you tmp file");
>            
>          
> print tmp $message;
>            
>          
> close(tmp);
>            
>          
> &sender;}
>            
>          
> };
>};
>close(F);
>close(T);
>#
>sub sender{
>open(S,`mail $mail </path to you tmp file`);
>}
>#
>вот чтото типа этого если я все правильно понял, писал на скорую
>руку могут быть ошибки... )


file1="path/to/first_file"
file2="path/to/second_file"

for i in `grep '[A-Za-z]$' file1`
do
match=`grep -A 1 $i file | grep -v $i`
user=`echo $i | tr "A-Z" "a-z"`
echo $match | mail -s "$user $match" `grep -n $user file2 | awk '{print $2}'`
done


"Помогите написать скрипт"
Отправлено HFSC , 28-Авг-03 14:02 
>>#!/usr/bin/perl
>>open(F,"</path to file mail");
>>open(T,"</path to file text");
>>while(<F>){
>>           ($num,$mail)=split(/:/,$_);
>>
>>            while(<T>){
>>            
>>          
>>($number,$message)=split(/:/,$_);
>>            
>>          
>> if ($num eq $number) {
>>                        open(tmp,">/path to you tmp file");
>>            
>>          
>> print tmp $message;
>>            
>>          
>> close(tmp);
>>            
>>          
>> &sender;}
>>            
>>          
>> };
>>};
>>close(F);
>>close(T);
>>#
>>sub sender{
>>open(S,`mail $mail </path to you tmp file`);
>>}
>>#
>>вот чтото типа этого если я все правильно понял, писал на скорую
>>руку могут быть ошибки... )
>
>
file1="path/to/first_file"
file2="path/to/second_file"

for i in `grep '[A-Za-z]$' $file1`
do
match=`grep -A 1 $i $file1 | grep -v $i`
user=`echo $i | tr "A-Z" "a-z"`
echo $match | mail -s "$user $match" `grep $user $file2 | awk '{print $2}'`
done
точнее так


"Помогите написать скрипт"
Отправлено ice_one1 , 28-Авг-03 16:27 
>file1="path/to/first_file"
>file2="path/to/second_file"
>
>for i in `grep '[A-Za-z]$' $file1`
>do
>match=`grep -A 1 $i $file1 | grep -v $i`
>user=`echo $i | tr "A-Z" "a-z"`
>echo $match | mail -s "$user $match" `grep $user $file2 | awk '{print $2}'`
>done
>точнее так

Ничего не выдает! Точнее не отправляет никуда ничего.
И еще не подскажите где взять доку по awk и grep на русском


"Помогите написать скрипт"
Отправлено HFSC , 28-Авг-03 17:58 
>>file1="path/to/first_file"
>>file2="path/to/second_file"
>>
>>for i in `grep '[A-Za-z]$' $file1`
>>do
>>match=`grep -A 1 $i $file1 | grep -v $i`
>>user=`echo $i | tr "A-Z" "a-z"`
>>echo $match | mail -s "$user $match" `grep $user $file2 | awk '{print $2}'`
>>done
>>точнее так
>
>Ничего не выдает! Точнее не отправляет никуда ничего.
>И еще не подскажите где взять доку по awk и grep на
>русском
странно а у меня работало :)