hello
keszul egy lista egy lekerdezesbol es levelet kell kuldenem az erintett embereknek.
a listam ami igy nez ki:
gecos: teszt jakab-joska
mail: teszt.jakab.joska@example.com
gecos: service User
mail: service_user@example.com
gecos: test ember
mail: ember.test@example.com
.....
eddig ezt hoztam ossze gAWK-val:
awk -F: '{ /^$/ getline x; $0 = ($0 x); {print $2;} }'
sajnos ez nem a legjobb mert ilyesmi kimenetet keszit:
test joska-pistamail
sytem User
sys_user@example.com
test embermail
test jakab
jakab.test@example.com
....
megj.: nincsenek ures sorok csak a ----code---- blok nem szereti a nem ures sorokat email cim utan :(.
a levelkuldesre talaltam a system parancsot https://www.gnu.org/software/gawk/manual/gawk.html#I_002fO-Functions
de azt nem tudom hogy miert jelenik meg mail nehany nev vegen es hogy hogyan is kene a system parancsot hasznalnom. probaltam valtozokba menteni az neveket es email cimeket de ahogy lattam az END szekcióban csak az utolso ertek jelenik meg, eseteben az utolso nev es mail cim.
tud valaki segiteni?
- 853 megtekintés
Hozzászólások
Kicsit át kellene rendezni azt a programot. ;)
Lássuk mi az input! Próbáld meg code nélkül ideírni!
Meg még azt is, hogy kb. mit szeretnél csinálni pl. egy userrel. Akár példával is. ;)
- A hozzászóláshoz be kell jelentkezni
command....\n
gecos: keresztnev vezetekneve
mail: "keresztnev.vezeteknev@example.com"
gecos: system User
mail: "system_user@example.internal"
gecos: keresztneve vezetekneve-vezeketneve
mail: "keresztnev.vezetekneve.vezeteknev@example.com"
gecos: test joska
mail: "test.joska@example.io"
........
ebbol a listabol akarok en egy template segitsegevel leveleket kuldeni.
u.i.
nincs az emailcim korul macskakorom csak mashogy nem akarta nem email cimket kezelni
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
Ha a levél tartalma legyen a mailbodyfile-ban!
A program:
#!/bin/bash
awk -v Subject="Ez a subject" \
-v Body=mailbodyfile \
'BEGIN {
Nlm=length("gecos: ")+1
Mlm=length("mail: ")+1
}
/^gecos:/ {
Name=substr($0,Nlm)
}
/^mail:/ {
Mail=substr($0,Mlm)
}
/^$/ {
Command=sprintf("mail -s \"%s\" \"%s\"\\<%s\\> < %s",Subject,Name,Mail,Body)
print Command
# system(Command)
}' < lista
Az eredmény:
mail -s "Ez a subject" "keresztnev vezetekneve"\<keresztnev.vezeteknev@example.com\> < mailbodyfile
mail -s "Ez a subject" "system User"\<system_user@example.internal\> < mailbodyfile
mail -s "Ez a subject" "keresztneve vezetekneve-vezeketneve"\<keresztnev.vezetekneve.vezeteknev@example.com\> < mailbodyfile
mail -s "Ez a subject" "test joska"\<test.joska@example.io\> < mailbodyfile
Ha tetszik, akkor kiveheted a # jelet a system elől és mehet élesben.
- A hozzászóláshoz be kell jelentkezni
1000 x thx
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni