Dateien ab einer bestimmten Zeile löschen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mrblubber, 10.01.2015.

  1. #1 mrblubber, 10.01.2015
    Zuletzt bearbeitet: 11.01.2015
    mrblubber

    mrblubber Grünschnabel

    Dabei seit:
    10.01.2015
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo,

    ich habe ein Skript geschrieben, welches mir mehrere Dateien in eine einzige Datei zusammenführt. Die einzelnen Dateien enthalten aber mehr Information als ich eigentlich brauche und ich würde den überflüssigen Inhalt gerne wegschneiden. Die Dateien sind folgendermaßen aufgebaut:

    $Anfang
    wichtiger Inhalt
    $blablabla
    hier fängt der Dreck an
    $end

    Der wichtige Inhalt ist immer unterschiedlich lang und daher müsste ich die Dateien immer ab der Zeile $blablabla löschen. Ich habe bisher nur Lösungen gefunden um einzelne Zeilen mit bestimmtem Inhalt zu löschen oder alles ab einer bestimmten Zeile. Ich brauche eine Kombination aus diesen beiden Wegen (löschen ab einem bestimmten Inhalt). Hat jemand einen Lösungsvorschlag?

    Danke
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Nexus633, 11.01.2015
    Nexus633

    Nexus633 Eroberer

    Dabei seit:
    10.01.2014
    Beiträge:
    56
    Zustimmungen:
    0
    Hey,
    Du kannst mit grep dir den Inhalt aufgeben, zählen ab welcher Zeile dieser Inhalt beginnt und dann ab Zeile X Löschen :-)

    Den genauen Befehl habe ich nicht im kopf... Bin am Handy. Ist aber nicht schwierig :-)

    Gruß


    Gesendet von meinem HTC One mit Tapatalk
     
  4. #3 Nexus633, 11.01.2015
    Nexus633

    Nexus633 Eroberer

    Dabei seit:
    10.01.2014
    Beiträge:
    56
    Zustimmungen:
    0
    Hey,
    Hätte hier eine Lösung.

    Zeilennummer des gesuchten strings:
    egrep -n "string" file | cut -d":" -f1

    Löschen ab der Zeile X:
    sed 'GEFUNDENEZEILE,$d' file

    Gruß

    Gesendet von meinem HTC One mit Tapatalk
     
  5. #4 mrblubber, 11.01.2015
    mrblubber

    mrblubber Grünschnabel

    Dabei seit:
    10.01.2015
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo Nexus633,

    danke für deine Antwort. Gerade eben habe ich nach mehreren Stunden Suche eine Lösung gefunden. Mit
    wird alles von $blablabla bis $end gelöscht. Das ist sogar eleganter als dein Vorschlag :D

    Trotzdem vielen Dank! :)
     
  6. #5 Nexus633, 11.01.2015
    Nexus633

    Nexus633 Eroberer

    Dabei seit:
    10.01.2014
    Beiträge:
    56
    Zustimmungen:
    0
    Hey,
    Kein Problem, nur habe ich deinen thread anders interpretiert... Du schreibst du hast mehrere Dateien die du zusammenführst. In diesen Dateien sind habe überflüssige Inhalte drinne, die du wegschneiden willst. Diese Inhalte musst du dir also raussuchen. Da du geschrieben hast das du bisher nur eine Methode gefunden hast wo du einzelne Zeilen löschen kannst, stelle ich mir doch den Gedanken das du dir den Inhalt raussuchst. Da du Zeilen erwähnt hast und ich das so raudgelesen habe, habe ich dir diesen Vorschlag erbracht.

    In deinem Beispiel musst du ja genau wissen wo was ist um es zu löschen. Demnach kannst du das doch beim zusammenführen direkt weglassen. So sparst du dir einen arbeitsweg.

    Naja ist auch Jacke wie Hose :-)
    Solange dir geholfen ist, ist doch alles paletti :-)

    Gruß

    Gesendet von meinem HTC One mit Tapatalk
     
  7. #6 mrblubber, 11.01.2015
    mrblubber

    mrblubber Grünschnabel

    Dabei seit:
    10.01.2015
    Beiträge:
    3
    Zustimmungen:
    0
    Hmm ich glaube wir reden aneinander vorbei. Ich will in diesen Dateien alles ab der Zeile $blablabla löschen. Der Inhalt von $blablabla ist in allen Dateien gleich. Diese Zeile befindet sich aber immer an einer anderen Stelle, weil der Inhalt vorher unterschiedlich lang ist. Deswegen macht dieser Weg auf jeden Fall Sinn. Außerdem ist das nur ein Schritt, deine Lösung waren 2 Schritte. Also nix mit Arbeitsweg sparen :P

    Und ich meinte ich habe nur Wege gefunden um
    a) eine einzelne Zeile mit einem bestimmten string zu löschen oder
    b) um einen ganzen Bereich mit Hilfe von Zeilennummern zu löschen.
    Ich brauchte aber eine Lösung um einen Bereich mit Hilfe eines bestimmten strings zu löschen, weil die Zeilennummer in jeder Datei anders ist. Aber jetzt habe ich die Lösung ja.

    Viele Grüße
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 Nexus633, 11.01.2015
    Nexus633

    Nexus633 Eroberer

    Dabei seit:
    10.01.2014
    Beiträge:
    56
    Zustimmungen:
    0
    Hey,
    Jo dann wie gesagt falsch interpretiert.
    Auch wie gesagt: solange du das gefunden hast was du brauchst und dieser weg klappt läuft ist doch alles super :-)

    Gruß

    Gesendet von meinem HTC One mit Tapatalk
     
  10. #8 tgruene, 12.01.2015
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Wenn die Datein sehr gross sind, ist es schneller, nur die ersten Zeilen zu drucken, anstatt die letzten zu loeschen. Das muesste mittels
    Code:
    sed -n '1,/$blablabla/p' input > output
    
    funktionieren.
     
Thema:

Dateien ab einer bestimmten Zeile löschen

Die Seite wird geladen...

Dateien ab einer bestimmten Zeile löschen - Ähnliche Themen

  1. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...
  2. Dateien verschieben + Zeitstempel anhängen mit Hilfe einer for - Schleife

    Dateien verschieben + Zeitstempel anhängen mit Hilfe einer for - Schleife: Guten morgen zusammen, könnt ihr mir bitte sagen warum meine for - Schleife nicht funktioniert? timestamp=$( date +%d.%m.%y_%H:%M:%S )...
  3. perl script, das Dateien aus einer Liste löscht

    perl script, das Dateien aus einer Liste löscht: Hallo ich habe hier ein perl script, dass aus einer vorher generierten Liste, die so aus sieht 31edb809ff19486daf60e66cc3ab1a7d...
  4. Rekursives Ändern einer bestimmten Dateiendung

    Rekursives Ändern einer bestimmten Dateiendung: Hallo Leute, ich habe meine Musiksammelung komplett im Ogg-Vorbis-Format gespeichert. Seit neustem neigen aber alle möglichen Programme dazu,...
  5. Dateien aus einer Archivdatei löschen?

    Dateien aus einer Archivdatei löschen?: Hallo, ich habe ein Archiv mit folgenden Dateien: 1.txt 2.txt 3.txt 4.txtNun möchte ich aber die 2.txt aus dem Archiv heraus löschen. Bin für...