sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #66245
sh scripting - parsing af input ?
Hej!
Jeg er ved at forsøge at lave et script til en .qmail fil, som skal lave
visse ting på indkomne beskeder... Scriptet bliver kaldt med /bin/sh (ifølge
qmail-dokumentationen)
Jeg er klar over, at når mit script/min kommando bliver kaldt, så ligger
besked i stdin... denne gemmer jeg først med:
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
tee $TMPFILE >/dev/null 2>&1
Ved ikke om det kan gøres på andre måder, men det her burde da virke...
Anyway, det primære problem kommer her:
En indkommen mail køres gennem reformime -i - som giver f.eks. dette output:
section: 1
content-type: multipart/mixed
content-transfer-encoding: 8bit
charset: iso-8859-1
starting-pos: 0
starting-pos-body: 1837
ending-pos: 5829
line-count: 137
body-line-count: 103
section: 1.1
content-type: message/rfc822
content-transfer-encoding: 7bit
charset: iso-8859-1
content-disposition: attachment
starting-pos: 1927
starting-pos-body: 2021
ending-pos: 3833
line-count: 48
body-line-count: 44
section: 1.1.1
content-type: text/plain
content-transfer-encoding: 7bit
charset: iso-8859-1
starting-pos: 2021
starting-pos-body: 2826
ending-pos: 3833
line-count: 44
body-line-count: 24
section: 1.2
content-type: message/rfc822
content-transfer-encoding: 7bit
charset: iso-8859-1
content-disposition: attachment
starting-pos: 3877
starting-pos-body: 3971
ending-pos: 5783
line-count: 48
body-line-count: 44
section: 1.2.1
content-type: text/plain
content-transfer-encoding: 7bit
charset: iso-8859-1
starting-pos: 3971
starting-pos-body: 4776
ending-pos: 5783
line-count: 44
body-line-count: 24
Det, som nu skal gøres, er at alle sektioner af typen "message/rfc822" skal
hives ud og gemmes et specifikt sted på min disk. At lokalisere linier med
"message/rfc822" kan gøre via grep - men jeg skal i forbindelse med fundet
af "message/rfc822" faktisk bruge section-nummeret på linien før - i dette
tilfælde 1.1 og 1.2
Når disse numre findes (evt. via en form for løkke), skal reformime køres
med:
reformime -e -s <section-number> > (en ny temp-fil)
hvorefter et antal andre kommandoer skal arbejde på denne temp-fil
Nogle ideer til hvordan pokker jeg får det løst ??
/Brian
Follow ups