Ubuntu Zeilen Löschen aus .txt Datei
Hallo
ich habe hier noch ein Problem mit dem auslesen und löschen von Zeilen in einem Logfile
Zum Problem:
Die zeilen Anzahl des Logfiles BachupLog.txt (Der Schreibfehler ist richtig so) soll eingelesen werden und auf eine länge von 150 Zeilen gekürst werden wenn er länger ist als 150 Zeilen.
Die Shell geht bis zum punkt: zeilen_gesamt=$(sed -n '$=' $LOG) und wertet diese auch aus aber dann bricht das Programm ab. Habe schon eine weile rum probiert aber komme nicht auf den Fehler. Unter dem CODE hänge ich mal Bilder an.
Hier mal eine test shell:
bis hier kommt die shell wenn ich es laufen lasse dann kommt fehler in Zeile 97 und er hat dann auch nichts getan.
Ich hoffe es kann mir jemand helfen!
ich habe hier noch ein Problem mit dem auslesen und löschen von Zeilen in einem Logfile
Zum Problem:
Die zeilen Anzahl des Logfiles BachupLog.txt (Der Schreibfehler ist richtig so) soll eingelesen werden und auf eine länge von 150 Zeilen gekürst werden wenn er länger ist als 150 Zeilen.
Die Shell geht bis zum punkt: zeilen_gesamt=$(sed -n '$=' $LOG) und wertet diese auch aus aber dann bricht das Programm ab. Habe schon eine weile rum probiert aber komme nicht auf den Fehler. Unter dem CODE hänge ich mal Bilder an.
Hier mal eine test shell:
#!/bin/bash -x
# Sicherungsscript.sh
#*****************************************#
#*** BackupScript ***#
#*** 00.03.2012 ***#
#*** V.0.1Linux A. Schmidt ***#
#*****************************************#
DATE=$(date +%Y.%m.%d)
TIME=$(date +%H:%M)
#Variable DATE und TIME erstellen
#######################################################
LOG=/home/administrator/BachupLog1.txt
zeilen_max=150
zeilen_gesamt=$(sed -n '$=' $LOG)
bis hier kommt die shell wenn ich es laufen lasse dann kommt fehler in Zeile 97 und er hat dann auch nichts getan.
if [ $zeilen_gesamt -gt 150 ];
then
echo "#################hinter if###############" >> $LOG
let zeilen_loeschen=$zeilen_gesamt-$zeilen_max
sed -i "1,${zeilen_loeschen}d" $LOG
echo "#############Prüfung der Länge wurde durchgeführt############ >> $LOG
fi
#####################################################
Ich hoffe es kann mir jemand helfen!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182560
Url: https://administrator.de/contentid/182560
Ausgedruckt am: 19.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo auch in diesem Thread zum ähnlichen Thema
Vielleicht ist sed ein bisschen zu kompliziert für solch einfachen Dinge.
Zeilenzahl der Datei
zu löschende Zeilen (Anzahl)
und dann sollte Dein Code für sed eigentlich funktionieren
Markus
Vielleicht ist sed ein bisschen zu kompliziert für solch einfachen Dinge.
Zeilenzahl der Datei
lines=`wc -l $LOG | cut -d " " -f 1`
linestodelete=`expr $lines - 150`
sed -i "1,$linestodelete d" $LOG
Markus