Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ubuntu Zeilen Löschen aus .txt Datei

Frage Linux Ubuntu

Mitglied: racer1601

racer1601 (Level 1) - Jetzt verbinden

25.03.2012, aktualisiert 18:04 Uhr, 5872 Aufrufe, 4 Kommentare

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:
01.
#!/bin/bash -x 
02.
# Sicherungsscript.sh 
03.
#*****************************************# 
04.
#***           BackupScript            ***# 
05.
#***            00.03.2012             ***# 
06.
#***       V.0.1Linux A. Schmidt       ***# 
07.
#*****************************************# 
08.
DATE=$(date +%Y.%m.%d) 
09.
TIME=$(date +%H:%M) 
10.
#Variable DATE und TIME erstellen 
11.
####################################################### 
12.
LOG=/home/administrator/BachupLog1.txt 
13.
zeilen_max=150 
14.
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.

01.
if [ $zeilen_gesamt -gt 150 ]; 
02.
    then 
03.
         echo "#################hinter if###############" >> $LOG 
04.
         let zeilen_loeschen=$zeilen_gesamt-$zeilen_max 
05.
         sed -i "1,${zeilen_loeschen}d" $LOG 
06.
         echo "#############Prüfung der Länge wurde durchgeführt############ >> $LOG 
07.
fi 
08.
#####################################################
Ich hoffe es kann mir jemand helfen!

1847732db470e5d196cc74d3d698b757 - Klicke auf das Bild, um es zu vergrößern

d2ad641d02be37dd35a12849ef3c498c - Klicke auf das Bild, um es zu vergrößern
Mitglied: bastla
25.03.2012 um 18:27 Uhr
Hallo racer1601!

Wäre nicht eher "head tail" das, was Du suchst?

Grüße
bastla
Bitte warten ..
Mitglied: hmarkus
25.03.2012 um 19:52 Uhr
Hallo auch in diesem Thread zum ähnlichen Thema

Vielleicht ist sed ein bisschen zu kompliziert für solch einfachen Dinge.

Zeilenzahl der Datei
lines=`wc -l $LOG | cut -d " " -f 1` 
zu löschende Zeilen (Anzahl)
linestodelete=`expr $lines - 150`
und dann sollte Dein Code für sed eigentlich funktionieren
sed -i "1,$linestodelete d" $LOG

Markus
Bitte warten ..
Mitglied: Lochkartenstanzer
25.03.2012 um 20:51 Uhr
Ich würd' s so lösen:

tail -n $zeilen_max  $LOG >$tempfile 
mv $tempfile $LOG
lks
Bitte warten ..
Mitglied: racer1601
28.03.2012 um 12:32 Uhr
Danke euch beiden geht jetzt alles!

Alex
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Netzwerkfehler bei HyperV - Host

Anleitung von Scrises zum Thema Windows Server ...

Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Server
Upgrade von Win Server 2008 auf 2012 gescheitert (19)

Frage von Ghost108 zum Thema Windows Server ...