Zeilen bis zum Wort XXXX löschen [Bash]

Diskutiere Zeilen bis zum Wort XXXX löschen [Bash] im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, Gibt es eine Möglichkeit alle Zeilen in einer Textdatei bis zu einem bestimmten Wort oder einer bestimmten Zeilen Nummer zu löschen?...

  1. #1 Samara-X, 21.07.2008
    Samara-X

    Samara-X Mitglied

    Dabei seit:
    04.04.2007
    Beiträge:
    36
    Zustimmungen:
    0
    Hallo,

    Gibt es eine Möglichkeit alle Zeilen in einer Textdatei
    bis zu einem bestimmten Wort oder einer bestimmten
    Zeilen Nummer zu löschen?

    Ich dachte erst an grep aber damit kann man nur
    die Zeile ausfindig machen, ich will die Zeilen aber
    bis zum Wort löschen..

    z.B.

    cat textdatei.txt

    hallo
    test
    foo
    conny
    arsc

    dann soll z.B. alles bis Zeile foo gelöscht werden, so das nur noch
    conny und arsc über bleiben.

    Danke für eure Antworten!
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Aqualung, 21.07.2008
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    Code:
    sed -e 1,/foo/d  textdatei.txt
     
  4. #3 Samara-X, 21.07.2008
    Samara-X

    Samara-X Mitglied

    Dabei seit:
    04.04.2007
    Beiträge:
    36
    Zustimmungen:
    0
    cool genau so wollte ich es, danke!

    ❤ Bash ❤
     
  5. #4 freecell, 22.07.2008
    freecell

    freecell Grünschnabel

    Dabei seit:
    22.07.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Limburg
    Hallo,

    ich bin ebenfalls neu hier und wollte an die Frage noch anknüpfen. Ich nutze Debian 4.0.

    Ich möchte bestimmte Zeilen in einer Datei entgültig löschen. Mit

    Code:
    sed -e 1d  textdatei.txt
    oder

    Code:
    sed -e '1d'  textdatei.txt
    sollte die 1 Zeile der Testdatei gelöscht werden.

    Wenn ich danach jedoch mit

    Code:
    cat textdatei.txt
    den Inhalt wieder aufrufe, wird mir wieder alles angezeigt.

    Wird "sed" nur benutzt um Zeilen bei der Bildschirmausgabe zu löschen?
    Und wie kann ich diese Zeile entgültig aus der Datei löschen?
    Wenn möglich ohne perl und C/C++.

    Die einzige Variante die ich bisher habe, ist die Ausgabe in eine 2. Datei umzuleiten mit:

    Code:
    sed -e '1d'  textdatei.txt > textdatei2.txt
    Da ich diesen Befehl jedoch in einer Schleife mehrfach ausführen möchte, müßte ich dann jedesmal diese textdatei2.txt erstellen, die alte Datei löschen und die neue Datei umbenennen von textdatei2 nach textdatei1

    Habt ihr hierzu eine Lösung?

    Danke und Gruß, freecell.
     
  6. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    Sed mach Änderungunen grundsätzlich im eigenen Buffer und gibt diese dann nach stdout.
    Sofern du gnu sed verwedest gibt es die Option '-i' die macht die änderungen inline also:
    Code:
    sed -i '1d' datei.txt
    
    ansonsten ist der Weg mit der Ausgabeumleitung der richtige, du könntest in deinem Script ja z.B folgendes anhängen:
    Code:
    sed -e '1d'  textdatei.txt > textdatei2.txt ; mv textdatei2.txt textdatei.txt
    
    Gruss
    d22
     
  7. #6 Gott_in_schwarz, 22.07.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Das ist aber eigentlich the way to go.
    Code:
    sed -e '1d file > file.tmp && mv file.tmp file
    Unportabel (weil von sed-Version abhängig) ginge es eventuell mit dem "-i" switch (für inplace-Veränderung der Datei). (Mit gnu-sed sollte das zum Beispiel funktionieren.)
     
  8. #7 freecell, 22.07.2008
    freecell

    freecell Grünschnabel

    Dabei seit:
    22.07.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Limburg
    Hallo,

    und danke euch beiden!

    Ich denke ich werde es so wie von "gott_in_schwarz" geschrieben machen.

    Grüße, freecell
     
  9. #8 Gott_in_schwarz, 22.07.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Mach das lieber nicht, bei mir fehlt ein single-quote. :(
     
Thema: Zeilen bis zum Wort XXXX löschen [Bash]
Besucher kamen mit folgenden Suchen
  1. alle zeilen bis wort löschen bash

    ,
  2. linux bash bis zu einem wort alles löschen

    ,
  3. sed lösche alles vor zeile

    ,
  4. sed zeile ohne löschen,
  5. bash script zeilen löschen,
  6. bash grep zweites wort aus zeile,
  7. bash anzahl zeilen löschen,
  8. bash zeile löschen,
  9. bash löschen bis zeile,
  10. bash wörter in zeile löschen,
  11. mit sed wörter löschen,
  12. cat grep Wort entfernen
Die Seite wird geladen...

Zeilen bis zum Wort XXXX löschen [Bash] - Ähnliche Themen

  1. Zeilen auslesen und anderer Stelle wieder einfügen

    Zeilen auslesen und anderer Stelle wieder einfügen: Hallo zusammen, ich habe Problem mit einer Datei, in welcher ich mittels sed Zeilen auslesen will und an anderer Stelle wieder einfügen will....
  2. perl: Zusammenführen von Zeilen, die mit Leerzeichen beginnen.

    perl: Zusammenführen von Zeilen, die mit Leerzeichen beginnen.: Hallo, Hintergrund: Das LDIF-Format trennt Zeilen, die größer als 80 Zeichen sind und schreibt in die nächste Zeile ein Leerzeichen. Beispiel:...
  3. Zeilen-übergreifend zwischen {....} filtern

    Zeilen-übergreifend zwischen {....} filtern: Hallo in einer Datei können Flags vergeben werden. es können x-Flags vergeben werden die innerhalb von {zeile, zeile} stehen. Ich möchte eine...
  4. Zeilen behalten, die Werte in einem bestimmten Bereich enthalten

    Zeilen behalten, die Werte in einem bestimmten Bereich enthalten: Hallo, ich habe eine Datei mit 4 Spalten, in denen Zahlenwert liegen. Ich möchte gerne alle Zeilen behalten, bei denen der Wert in der dritten...
  5. Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

    Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält: Hallo, ich habe folgendes Problem. Ich erstelle mit Hilfe einer Shell eine Liste, die vier Spalten mit Zahlenwerten enthält. Wenn die letzte...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden