[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

shell: ajouter du texte en début de ligne d'un fichier



bonjour la liste,

J'aimerai tagué un fichier en rajoutant un motif du genre <TRAITE> en
début de ligne de mon fichier.
La difficulté provient du fait que je veux taguer uniquement certaines
lignes (et pas en perl ;) )

Par exemple:
# cat fichier
toto ceci est la ligne 1
titi ceci est la ligne 2
tata ceci est la ligne 3
toto ceci est la ligne 4
tutu ceci est la ligne 5

Je fait un grep toto dans fichier_tempo
# cat fichier_tempo
toto ceci est la ligne 1
toto ceci est la ligne 4

Ensuite, dans un script qui lit fichier_tempo, je voudrais tagger les 2
lignes "toto ceci est la ligne 1" et "toto ceci est la ligne 4" du
fichier et avoir ainsi en bout de course:

# cat fichier
<TRAITE>toto ceci est la ligne 1
titi ceci est la ligne 2
tata ceci est la ligne 3
<TRAITE>toto ceci est la ligne 4
tutu ceci est la ligne 5

Pourquoi ceci ? pour ne prendre que les nouvelles lignes "toto" lorsque
je relancerai le script.

Voici mon script actuel qui n'attend plus que le TAG.
internet:/home/fregnier/scripts# cat verif_spam.sh
#fab le 24/10/2006
#vérifier dans mail.log les nouveaux spam (qui sont en DISCARD) et
envoyé les expediteurs et destinataires à root.
#on tag les spam lorsqu'ils ont été traité

FILE=/tmp/spam
FILE2=/tmp/spam2

rm $FILE $FILE2

grep discard /var/log/mail.log > $FILE

if test -s $FILE
then
  cat $FILE | while read LALIGNE
  do
    QUAND=`echo $LALIGNE | awk '{print $1" "$2" "$3" " }'`
    TO_FROM=`echo $LALIGNE | awk -F";" '{print $2 }'`
    echo $QUAND $TO_FROM >> $FILE2

    #je tag mail.log
    # mais comment ?

  done
  #on envoi le resultat à root
  cat $FILE2 | mail -s "Spams reçus:" root
fi


merci et a+

f.



Reply to: