#1 15. Januar 2013 Servus, bin in dem Bereich ein totaler noob und bräuchte mal eure hilfe. Ich hab ein Shellskript welches einfach in eine Datei (zb log/test) beim ausführen das aktuelle datum und die pid des skripts einträgt (jedes mal in eine neue zeile). Nun gibt es noch folgenden aufgabenzusatz: Ich hab absolut keine Idee wie ich das rausfiltern lassen kann. Irgendwie mit dem vi Editor sollte es vermutlich gehen... Die Logdatei ist so aufgebaut: Code: [2013.01.15 00:41:16 (2388)] Test1 [2013.01.15 00:41:57 (912)] Test2 [2013.01.15 00:42:18 (4088)] Test3 Wäre top wenn mir jmd eine lösung bzw tipps anbieten könnte. Nutze atm zum Testen noch cygwin auf meinen Windows Rechner^^ Gruß
#2 15. Januar 2013 AW: [BASH] Einträge aus Datei löschen mittels Skript Würde da nicht mit vi, sondern mit awk oder sed rangehen. Die sind mächtiger. awk: The GNU Awk User’s Guide sed: GNU sed - GNU Project - Free Software Foundation (FSF) Viel Spaß. 1 Person gefällt das.
#3 15. Januar 2013 AW: [BASH] Einträge aus Datei löschen mittels Skript Ok schonmal danke für den Tipp. Kann mir evtl jmd nen Ansatz noch verraten? angenommen es sieht so aus: Code: [2013.01.12 00:41:16 (2388)] Test1 [2013.01.13 00:41:57 (912)] Test2 [2013.01.13 00:42:18 (4088)] Test3 [2013.01.15 00:42:18 (4089)] Test4 Und alles was älter als 1 Tag ist soll gelöscht werden. Dann muss ich nach dem untersten Date suchen was in mein suchschema passt und alle lines darüber löschen. nur fehlt mir die umsetzungsidee-.-
#4 17. Januar 2013 AW: [BASH] Einträge aus Datei löschen mittels Skript Code: date +[%Y.%m.%d Um das richtig Datum zu finden Code: grep -n $pattern $file -m 1 | sed -n 's/^\([0-9]*\)[:].*/\1/p' Um die Zeilennummer zu bekommen. (Der sed-Regex kommt von The UNIX and Linux Forums - Learn UNIX and Linux from Experts) Jetzt musst du das ganze nur noch mit sed verknüpfen, und alle Zeilen bis zur herausgefundenen Nummer löschen. 1 Person gefällt das.
#5 17. Januar 2013 AW: [BASH] Einträge aus Datei löschen mittels Skript vielen dank^^ werd es mit deinem auch nochmal testen. hab es mittlerweile auch mit sed (allerdings unnötig kompliziert) gelöst