PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Shell: Verbindung von STDOUT mit string und dann Umleitung in Datei



HyDee
07.09.11, 17:39
Hi,

ich versuche, eine Art Logfile zu generieren. Dazu habe ich einen Prozess, der mir immer wieder mal Daten liefert. Diese möchte ich zusammen mit dem aktuellen Datum in eine Datei schreiben. Etwa so:

1.1.1970 9:00 Uhr: Status des Dateisystems ist so
1.1.1970 17:32 Uhr: Jetzt ist das und das passiert
usw.

Jetzt war ich schon so weit, dass es ungefähr so aussehen müsste:
shell> process | grep pattern >> logfile

Der grep ist zum filtern der unnötigen und nötigen Infos. Aber wie verknüpfe ich denn jetzt den Outcome vom grep mit dem Datum, bevor das jeweils in das log file geht?

Roger Wilco
07.09.11, 18:02
$ ./dein-programm | awk ' /dein-pattern/ { print strftime("%D %T"), $0 }' >> /path/to/file.log

HyDee
07.09.11, 18:10
Ich muss leider noch mal blöd fragen. Warum awk? Warum nicht grep? Und mit meinem Pattern suche ich ja nicht nach dem Datum. Ich dachte, das muss ich da irgendwie per date reingeben? Nicht?

Roger Wilco
07.09.11, 18:13
Wenn du mit `grep` die Ausgaben verändern kannst, dann nur zu. ;)

In deinem ersten Post schriebst du, dass du das Datum mit ausgeben willst, das macht die Funktion strftime(). Wenn du nach dem Datum suchen willst, klappt das so natürlich nicht.

HyDee
07.09.11, 22:31
Okay, das macht Sinn ;)

[Edit: Eigenen Fehler bemerkt]

marce
08.09.11, 06:43
hier funktioniert auch ein

$programm | echo "$(date) $(grep $pattern)"

HyDee
08.09.11, 08:25
Hat auch mit dem awk schon geklappt, aber danke Euch beiden!