Difference between revisions of "Prova pratica 2002.01.24"

From Sistemi Operativi
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...")
 
 
(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

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.

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