(BASH) sed will meine Variable nicht

brenner

Commander
Registriert
Apr. 2002
Beiträge
3.037
N´Abend,

ist bestimmt nur was Kleines, aber ich finde den Fehler nicht.

Ich suche in einer Textdatei nach einem Datum "2014-02-05" und gebe alle Fundstellen in einer neuen Datei aus. Gebe ich sed direkt die reg.exp. funktioniert es, mit einer Variablen nicht. Es erscheint auch keine Fehlermeldung, aber die neue Datei ist dann leer.


Code:
DATE=`date +%Y-%m-%d`

#OK:
sed -n '/2014-02-05/{n;p;}' $LOG_FILE_CNT > $CALC01

#Nicht OK:
#sed -n '/$DATE/{n;p;}' $LOG_FILE_CNT > $CALC01
 
Du musst doublequotes (" ") statt singlequotes (' ') verwenden, da die Variable sonst nicht durch ihren Wert ersetzt wird.
 
Danke, das wars. Danke euch Beiden!
Ergänzung ()

Wo ihr grad noch da seid ;-) ....warum bekomme ich nur jede zweite Zeile ausgegeben? Sucht das sed "falsch"?
 
Zuletzt bearbeitet:
Code:
sed -n "/$DATE/p" $LOG_FILE_CNT > $CALC01

Sollte eigentlich funzen. Aber eigentlich bietet sich grep für solche Aufgaben ja eher an. Du willst doch nur die Zeilen ausgeben in denen $DATE vorkommt oder?
 
Zuletzt bearbeitet:
Dann solltest du wirklich grep nehmen
Code:
grep $DATE $LOG_FILE_CNT > $CALC01

Ist zwar nicht viel kürzer, aber in meinen Augen angemessener.
 
Zurück
Oben