Difference between revisions of "Prova pratica 2002.01.24"
Jump to navigation
Jump to search
(Created page with "Scrivere uno script che estragga messaggi con subject SUBSCRIBE:<email> da un folder di posta elettronica e che inserisca <email> in un file chiamato mailing.list, evitando di...") |
m (FedericoB moved page Bash scripting 2002 gennaio to Prova pratica 2002.01.24) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [http://www.cs.unibo.it/~renzo/so/pratiche/2002-01-24.pdf link al compito] | ||
+ | ==Esercizio 1== | ||
Scrivere uno script che estragga messaggi con subject SUBSCRIBE:<email> da un folder di posta elettronica e che inserisca <email> in un file chiamato mailing.list, evitando di inserire dupplicati. | Scrivere uno script che estragga messaggi con subject SUBSCRIBE:<email> da un folder di posta elettronica e che inserisca <email> in un file chiamato mailing.list, evitando di inserire dupplicati. | ||
Line 24: | Line 26: | ||
</source> | </source> | ||
− | == Soluzione di Eddy == | + | ===Soluzione di Eddy=== |
<source lang="bash"> | <source lang="bash"> | ||
#! /bin/bash | #! /bin/bash |
Latest revision as of 09:24, 9 May 2017
Esercizio 1
Scrivere uno script che estragga messaggi con subject SUBSCRIBE:<email> da un folder di posta elettronica e che inserisca <email> in un file chiamato mailing.list, evitando di inserire dupplicati.
file:
From: montreso@cs.unibo.it
Subject: SUBSCRIBE: montreso@cs.unibo.it
Date: xx.xx.xx
From: montreso@cs.unibo.it
Subject: SUBSCRIBE: montreso@phd.cs.unibo.it
Date: xx.xx.xx
From: rossi@cs.unibo.it
Subject: SUBSCRIBE: rossi@cs.unibo.it
Date: xx.xx.xx
From: bononi@cs.unibo.it
Subject: SUBSCRIBE: rossi@cs.unibo.it
Date: xx.xx.xx
il file risultante deve contenere:
montreso@cs.unibo.it
montreso@phd.cs.unibo.it
rossi@cs.unibo.it
Soluzione di Eddy
#! /bin/bash
controllaOccorrenza ()
{
unaVolta=0
if [ ! -f $2 ]
then
touch $2
fi
buf=`cat $2`
for word in $buf; do
if [ "$word" == "$1" ]; then
unaVolta=1
break
fi
done
if [ "$unaVolta" -eq "0" ]; then
echo "$1" >> $2
fi
}
okRead=0
buf=`cat $1`
for word in $buf; do
# echo "$word"
if [ "$okRead" -eq "1" ]; then
controllaOccorrenza $word mailing.list
okRead=0
fi
if [ "$word" == "SUBSCRIBE:" ]; then
okRead=1
fi
done