Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Textdatei mit Skript bearbeiten

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hammerp



Anmeldungsdatum: 11.06.2002
Beiträge: 18

BeitragVerfasst am: 06. Jan 2003 17:36   Titel: Textdatei mit Skript bearbeiten

Hallo,
ich möchte in einem Skript aus einer Textdatei die letzten acht Zeilen löschen.
Wie kann ich das anstellen?
Ich kenne sed, komme aber mit den Befehlen nicht klar. Kennt vielleicht jemand eine Übersicht oder eine allgemeine Anleitung?
Vielen Dank im Voraus
hammerP
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

hammerp



Anmeldungsdatum: 11.06.2002
Beiträge: 18

BeitragVerfasst am: 06. Jan 2003 19:51   Titel: Re: Textdatei mit Skript bearbeiten

So:
% a=$(expr $(cat datei | wc -l) - Cool
% cat datei | sed -e $a,1000d
Klappt natürlich nur wenn datei weniger als 1000 Zeilen hat.
Für zusätzliche Anregungen wäre ich dankbar, zum Beispiel wie man in das address-range-Ende (1000) eine Variable einsetzen kann.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

cd



Anmeldungsdatum: 19.12.2000
Beiträge: 114

BeitragVerfasst am: 06. Jan 2003 20:41   Titel: Re: Textdatei mit Skript bearbeiten

per wc -l zeilen zaehlen, 8 abziehen und per head den Anfang > neue Datei

z.B.
#!/bin/csh -f

@ laenge = `wc -l test.txt` -8

head -$lanege test.txt > neu.txt

exit (0)

Sorry, weiss gerade nicht, wie man in bash rechnet.

Gruesse, Clemens
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

rattengift
Gast





BeitragVerfasst am: 06. Jan 2003 21:15   Titel: Re: Textdatei mit Skript bearbeiten

die letzte zeile wird in sed mit "$" bezeichnet. also sed x,$d löscht von x bis ende.
code:
#!/bin/bash
ABZEILE=$[ $(cat datei | wc -l) - 8 ]
cat datei | sed ${ABZEILE},$d > datei

falls die datei auch kürzer als 8 zeilen sein kann, muss man das noch abfangen.
 

hammerp



Anmeldungsdatum: 11.06.2002
Beiträge: 18

BeitragVerfasst am: 06. Jan 2003 21:41   Titel: Re: Textdatei mit Skript bearbeiten

@Clemens: Hier mit head zu arbeiten ist eigentlich wirklich viel eleganter; danke für den Tipp.
Rechnen kann man übrigens entweder mit expr oder wie rattengift es gemacht hat mit eckigen Klammern drumherum.
@rattengift: Das habe ich auch schon versucht, allerdings klappt es nicht. Probier es selber auch mal und guck ob es geht. Wenn ja, wie genau hast du es eingegeben?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

rattengift
Gast





BeitragVerfasst am: 06. Jan 2003 22:27   Titel: Re: Textdatei mit Skript bearbeiten

oops, funktioniert tatsächlich nicht. so gehts:
code:
#!/bin/bash
datei=xxxxxx

ABZEILE=$[ $(cat $datei | wc -l) - 8 ]
cat $datei | sed "${ABZEILE},$ d" > $datei

übrigens werden, wenn du "-8" rechnest nicht 8 sondern 9 zeilen gelöscht
mehr infos zu sed: http://www.grymoire.com/Unix/index.html
 

hammerp



Anmeldungsdatum: 11.06.2002
Beiträge: 18

BeitragVerfasst am: 07. Jan 2003 15:20   Titel: Re: Textdatei mit Skript bearbeiten

Stimmt, mit Anführungszeichen geht es. Auch Variablen sind dann möglich.
Danke, sehr praktisch.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy