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

Wie mit sed ein <Enter> einfügen?



Hallo zusammen,
ich mache hier meine ersten Schritte mit sed. Es geht um ein Script [1] 
welches als /etc/cron.daily/aptcheck gespeichert täglich nachschaut ob es 
Updates gibt, und mir dann eine EMail schickt.
Ich weiß, dass es dafür bessere Alternativen gibt (apticron? cron-apt?), aber 
bevor ich umsteige möchte ich mit sed wenigstens noch praktisch arbeiten.

Ich möchte bei dieser Liste:
{
apt-get -s dist-upgrade | grep Inst
Inst liblcms1-dev [1.15-1] (1.15-1.1+etch1 Debian-Security:4.0/stable) []
Inst liblcms1 [1.15-1] (1.15-1.1+etch1 Debian-Security:4.0/stable)
}
das "Inst " durch einen Zeilenvorschub ersetzen, der auch in einer EMail dazu 
führt. Bisher ging das so:
{
apt-get -s dist-upgrade | grep Inst | cut -c 6-30 | cut -f 1 -d " "
liblcms1-dev
liblcms1
}
aber in der Mail steht das:
liblcms1-dev liblcms1

Wie bekomme ich das untereinander? Ich habe da was mit /n im Hinterkopf, aber 
dann meckert sed.

Danke schonmal, Chris.......

[1]
#!/bin/bash
EMAIL="ChristianKnorr@gmx.de"
SNAME="Christians Server `hostname`"
SUBJECT="[$SNAME] Update Hinweis"
NOSUBJECT="[$SNAME] Kein Update"
TMP=/tmp/aptcheck.`date +%Y-%m-%d_%H:%M:%S`.tmp
MESSAGE="SYSTEMMELDUNG:\nAuf [$SNAME] sind folgende Updates verfuegbar:\n\n\n"
NOMESSAGE="SYSTEMMELDUNG:\nAuf [$SNAME] sind keine neue Updates verfuegbar."

# Dieses Script versendet eine eMail, sobald Online-Updates fuer das System
# verfuegbar sind. Das Script ist Public Domain, der Autor uebernimmt keine
# Haftung fuer das Script.

# Debian
aptitude update >/dev/null
COUNT=`apt-get -s upgrade | grep -c "Inst"`

if [ $COUNT -gt 0 ]
    then
        echo $MESSAGE > $TMP
        LIST=`apt-get -s dist-upgrade | grep Inst | cut -c 6-30 | cut -f 
1 -d " "`
        echo $LIST >> $TMP
        echo -e `cat $TMP` | mail -s "$SUBJECT" "$EMAIL"
        apt-get dist-upgrade -yd
#       rm $TMP
#    else
#       echo -e "$NOMESSAGE" | mail -s "$NOSUBJECT" "$EMAIL"
fi


Reply to: