Leerzeilen per script löschen?

D

DukeNuke2

Soulman
Gelöst: Leerzeilen per script löschen?

Hallo Leute,
ich schreibe grade an einem Script und muss aus einer Datei leerzeilen am Ende der Datei entfernen.
Habt ihr eine Lösung wie man sowas am einfachsten machen kann?

Beispiel:

ip-adr. name
ip-adr. name
ip-adr. name
leerzeile
leerzeile
leerzeile

Aus der Datei sollen die letzten 3 (können auch mal 5 oder sonstwas sein) Zeilen (leerzeile = es steht nix drinn) entfernt werden. Ich hoffe ihr versteht was ich meine.

tia,
DN2
 
Zuletzt bearbeitet:
Schnellschuss mit perl:

Code:
perl -pi -e 's/^\n//' file

Gruss, Xanti
 
Hallo
Code:
sed '/^$/d'
und du bist alle Leerzeilen los....

Gruss
d22
 
Hallo
Folgender Einzeiler löscht alle angehängten Leerzeilen.

Code:
sed -e :r -e '/^\n*$/{$d;N;};/\n$/br' Datei

Gruß Wolfgang
 
Xanti schrieb:
Schnellschuss mit perl:

Code:
perl -pi -e 's/^\n//' file

Gruss, Xanti
das script entfernt aber ALLE leerzeilen.... ich darf nur die am ende der datei entfernen. ansonsten schon mal danke!
 
DukeNuke2 schrieb:
das script entfernt aber ALLE leerzeilen.... ich darf nur die am ende der datei entfernen. ansonsten schon mal danke!

Dast tut mein Vorschlag. ;)
Aber wenn du mit der Datei direkt arbeiten willst, dann musst du bei GNU sed mit -i arbeiten, oder alternativ mit temp-Dateien.

Gruß Wolfgang
 
@wolfgang

danke für die hilfe... ich arbeite unter solaris und da gibt es den schalter "-i" nicht! ich kann aber jederzeit mit einer temp-datei arbeiten....
übrigens dein vorschlag funktioniert bei mir nicht :( vllt gibts weitere unterschiede zwischen dem gnu-sed und dem solaris-sed?)sch

ich hab grade mal mit gsed (hab ich aber nur aufm notebook) getestet, da hat "sed -e :r -e '/^\n*$/{$d;N;};/\n$/br' Datei" funktioniert. auf den systemen, wo das script laufen soll, ist aber kein gsed vorhanden (und darf auch nicht installiert werden) kann jemand den code von wolfgang auf solaris(ch) sed übersetzen? ;)
 
Zuletzt bearbeitet:
DukeNuke2 schrieb:
das script entfernt aber ALLE leerzeilen.... ich darf nur die am ende der datei entfernen. ansonsten schon mal danke!

Stimmt, wieder zu schnell gelesen. sorry, die Hitze :brav:

edit: Vielleicht geht folgendes, wenn's Probleme mit sed gibt:

Code:
perl -pi -0777 -e 's/\n+$/\n/' file
 
Zuletzt bearbeitet:
Hallo zusammen
Code:
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}'
das sollte auch auf Solaris funktioieren...
Habs auf Solaris9 getestet.

Gruss
d22
 
dizzgo schrieb:
Hallo zusammen
Code:
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}'
das sollte auch auf Solaris funktioieren...
Habs auf Solaris9 getestet.

Gruss
d22
jaaaaaaaa, danke (mit zuckerguss und sahne oben drauf) ;)
 

Ähnliche Themen

Queue für copy Script

große Textdateien (logs) per Kommandozeile editieren (teilweise löschen)

Doppelte Dateien löschen.

Letzten Tag löschen

[Tcl / Shell] Ändern einer Datei per vi - Änderungsdatum einer Datei erfassen

Zurück
Oben