← Back to team overview

sslug-teknik team mailing list archive

Re: sh scripting - parsing af input ?

 

"Ole Kofoed Hansen" <ole@xxxxxxxxxxxxxxx> wrote in message
news:3F45E10D.8090506@xxxxxxxxxxxxxxx...

> >>Følgende ikke-testede perl-stump burde kunne hjælpe dig på vej. Det skal
> >>  have outputtet ligesom dit eksempel på STDIN og på STDOUT skriver den
> >>de relevante sektionsnumre - på hver sin linie.
> >>
> >>#!/usr/bin/perl -w
> >>$normalspace = $/;
> >>$afsnitspace = "";
> >>
> >>$/ = $afsnitspace;
> >>@sektioner = grep { /content-type: message\/rfc822/ } <STDIN>;
> >>
> >>$/ = $normalspace;
> >>foreach $sektion (@sektioner) {
> >>   if ($sektion =~ /^section: (.*)$/ ) { print "$1\n"; }
> >>}
> >
> >
> > Tak for dit input - jeg får ikke noget output fra koden. Indsætter jeg
print
> > "$sektion"; i foreach løkken får jeg godt nok de 2 blokke ud, som er af
> > message/rfc822 typen  - men sektions-nummeret får jeg ikke....

> Måske det vil virke, hvis du erstatter linien med:
>
> $sektion =~ /section:\s([^\s])\s/; $nr=$1; print "$nr\n";
>
> istedet for den if-konstuktion, som jeg egentlig heller ikke var glad
> for. Ellers er der nok nogen på listen, som er mere perl-haj end jeg.
>
> Hvis det heller ikke virker, kan du eventuelt skrive hele
> $sektion-blokkene og sende dem igennem en grep eller sed.

Ok, perl-scriptet giver mig nu output som:

1.1
1.2

Nu mangler jeg så bare lige at få forklaret hvordan jeg får mit sh script
til at læse de 2 linier fra stdin - og kalde/køre en batch-fil med nummeret
som parameter... f.eks

for (et eller andet)...
do
  /var/qmail/bin/myscript.sh $section
done

?

/Brian




Follow ups

References