Prova pratica 2002.01.24
(Redirected from Bash scripting 2002 gennaio)
Jump to navigation
Jump to search
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