Textdatei filtern und löschen mit grep /sed

Diskutiere Textdatei filtern und löschen mit grep /sed im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Guten morgen liebe Forenmitglieder, da ich etliche Jahre in Sachen Linux pausiert habe und nun wegen beruflichem Wechsel wieder dort einsteige...

  1. #1 donmikel, 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    Guten morgen liebe Forenmitglieder,

    da ich etliche Jahre in Sachen Linux pausiert habe und nun wegen beruflichem Wechsel wieder dort einsteige hab ich im Moment ein kleines Problem bei dem Ihr mir sicherlich helfen könnt. ich sehe grad jedenfalls den Wald vor lauter Bäumen nicht mehr.

    Problemstellung :

    Ich soll aus einer Textdatei Zeilen herausfiltern und in eine neue Datei schreiben. Als Kriterien gibt es drei sog. NTNummern (mit ODER verknüpft) und eine MD_Nr (mit AND verknüpft).

    Also wenn eine Zeile mit NTNummer1 UND MD_Nr = 5000 auftaucht dann bitte in die neue Datei schreiben.
    Wenn eine Zeile mit der NTNummer1 UND der MD_Nr = 4999 auftaucht dann NICHT in die Datei schreiben.

    So weit so gut.

    Mittels grep habe ich die Filterung auch so weit hin bekommen.

    grep -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" datei | grep "#= MD_Nr \"5000" > neueDatei



    Nun mein Problem. Wie lösche ich im Anschluss diese Zeile aus der Originaldatei bzw. lege eine weitere Datei mit den übrigen Zeilen an ?


    grep -v -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" datei | grep -v "#= MD_Nr \"5000" > rest

    bzw.

    grep -v -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" datei | grep "#= MD_Nr \"5000" > rest


    Bei sed bekomme ich im moment lediglich hin, dass er mir die einzelnen Kriterien aus der Datei löscht aber nicht die UND-Verbindung zwischen NTNummer und MD_Nr

    sed '/\(#= NTNummer "5010376"\) /d' datei > rest

    bzw.

    sed '/\(#= MD_Nr "5001"\)/d' datei > rest


    Habt ihr auf den ersten Blick einen Tipp für mich wo ich ansetzen kann oder wie ich die Befehle anders aufbauen muss, damit das ganze funktioniert. Die man-Pages bringen mich im Moment hier nicht weiter.

    Vielen Dank schonmal und schöne Grüße aus Hamburg

    Michael
     
  2. #2 hellfire, 09.08.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Kannst Du bitte mal folgendes bereitstellen:

    • Eine kurze(verkürzte) Beispieldatei der Quelldaten
    • Eine Beispielausgabe des gewünschten Ergebnisses
    Die Beispieldaten sollten die relevanten Fälle enthalten.

    Verwende dazu bitte die Beitragsfunktion Einfügen -> code, damit der Code besser lesbar ist. Also so:

    Code:
    #!/bin/bash
    # das hier ist code

    Falls die Quelldaten sensibel sind, bitte unter Beibehaltung der Struktur und der Datentypen Phantasiedaten einsetzen.
     
  3. #3 donmikel, 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    Moin,

    ich habe Dir jetzt mal drei Dateien vorbereitet :

    1.) eine Datei mit den quasi Originaldaten - von mir natürlich angepasst
    2.) die zweite Datei wo die gefilterten Zeilen enthalten sind die ich mittels

    Code:
    grep -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" Originaldatei.txt | grep "#= MD_Nr \"5000" > GefilterteDatei.txt
    3.) eine Datei wo die restlichen Zeilen aus der Originaldatei enthalten sind und hier habe ich bisher keine Lösung gefunden den obigen Befehl umzukehren

    Code:
     grep -v -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" originaldatei.txt | grep "#= MD_Nr \"5000" > Rest.txt
    oder

    Code:
     grep -v -e "#= NTNummer \"5010376" -e "#= NTNummer \"5010385" -e "#= NTNummer \"5010365" originaldatei.txt | grep -v "#= MD_Nr \"5000" > Rest.txt
    Und mit dem sed-Befehl schaffe ich bisher nur Einzelne Sätze zu löschen. Bekomme hier keine UND- / ODER-Verknüpfung hin.
     

    Anhänge:

  4. #4 hellfire, 09.08.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Damit man das direkt sieht, habe ich das hier direkt ins Forum eingebunden.

    Ausgangsdaten


    Code:
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "4999" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "3000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010365" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    Kannst Du bitte noch mal das gewünschte Ergebnis reinstellen (also händisch die Zeilen zusammengepfrimelt / kopiert, so wie es aussehen soll)?
     
  5. #5 donmikel, 09.08.2017
    Zuletzt bearbeitet: 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    So, habe die Ausgangsdaten noch um eine Möglichkeit erweitert, weil dort auch noch andere Nummern drin sein können als die drei die ich heraus filtern soll :

    Ausgangsdaten :

    Code:
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "4999" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "3000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010365" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5012222" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    Gewünschtes Ergebnis / Rest-Daten aus der Originaldatei nach dem entfernen des gefilterten :

    Code:
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "4999" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "3000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5012222" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    Hier sollen alle Zeilen rein, wo die NTNummer ungleich den drei genannten NTNummern (5010376, 5010385 und 5010365) die ich als Kriterien habe aber es sollen auch die Zeilen enthalten sein, wo die drei NTNummer (5010376, 5010385 und 5010365) enthalten sind aber die MD_Nr ungleich 5000 ist.
     
  6. #6 donmikel, 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    Händisch meinst Du so (?) :

    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "4999" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "3000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5012222" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"


    Ich habe die Kriterien die ich benötige mal fett markiert - der restliche Inhalt ist unerheblich
     
  7. #7 hellfire, 09.08.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Wenn das dass gewünschte Ergebnis ist, dann ist es das, was ich mir gewünscht habe. Und immer die Code-Formatierung verwenden. Liest sich viel leichter dann.

    Code:
    #= NTNummer "5010376" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "4999" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5010385" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "3000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    #= NTNummer "5012222" #= NT_Pfad "Pfad" #= NT_Versandart 0 #= NNr 000000000 #= Archiv_Kez 1 #= Formatiertabelle "Tabellenname" #= Veranlasser 1 #= WKZ "EUR" #= Formularpool 29 #= SB_Etage "5" #= MD_Nr "5000" #= SB_Email "muster@email.de" #= Bankname "Musterbank" #= BIC "DDDDDDDD000" #= IBAN "DE00 0000 0000 0000 0000 00" #= Adressat_Art 1 #= Anredeart "" #= Anrede1 "" #= Titel1 "" #= Anrede2 "" #= Titel2 "" #= Vorname1 "Test1" #= Name1 "Test2" #= Vorname2 "" #= Name2 "" #= Adresszusatz "" #= ASPAnrede "" #= ASPTitel "" #= ASPName "" #= Strasse "Muster-Str." #= Hausnr "1" #= Land "D" #= PLZ "12345" #= Ort "Muster" #= SB_Anrede "" #= SB_Nachname "AB11" #= SB_Telefon "01234/567890"
    Jetzt schaue ich mir das mal an.
     
  8. #8 donmikel, 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    Genau, das ist die gewünschte Ausgabe mit der ich im Moment nicht klar komme :-)

    Danke Dir schon mal.
     
  9. #9 hellfire, 09.08.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Grundsätzlich mag ich awk für Verarbeiten von Textdaten, weil der Code sehr kompakt ist. Hier reicht aber wohl sed aus.

    Die folgenden Beispiele sind ungetestet.

    Beispiel für Deine Aufgabenstellung mit awk:

    Code:
    awk '/NT_Nummer "(5010376|5010385|5012222)" .*MD_Nr "5000"/ { print $0 }' original.txt
    Beispiel für Deine Aufgabenstellung mit sed:

    Ausgabe der gewünschten Datensätze:

    Code:
    sed -r -n -e '/NT_Nummer "(5010376|5010385|5012222)" .*MD_Nr "5000"/p' original.txt
    Löschen der gewünschten Datensätze aus der Originaldatei:

    Code:
    sed -r -i -e '/NT_Nummer "(5010376|5010385|5012222)" .*MD_Nr "5000"/d' original.txt
    Ich empfehle Dir, Dich mit den folgenden Themen zu beschäftigen, wenn Du mehr solche Aufgaben lösen musst - Wichtigkeit absteigend:
    • Reguläre Ausdrücke
    • Shellprogrammierung(speziell Quoting)
    • awk
    • sed
     
  10. #10 donmikel, 09.08.2017
    donmikel

    donmikel Grünschnabel

    Dabei seit:
    09.08.2017
    Beiträge:
    6
    Zustimmungen:
    0
    Ich danke Dir für Deine ausführliche Antwort und Themen-Tips und werde mir das alles gleich mal anschauen und testen.

    Werde dann später eine Rückmeldung geben :-)
     
Thema:

Textdatei filtern und löschen mit grep /sed

Die Seite wird geladen...

Textdatei filtern und löschen mit grep /sed - Ähnliche Themen

  1. Web Links aus einer Webseite/Textdatei filtern / WGET

    Web Links aus einer Webseite/Textdatei filtern / WGET: Hallo, ich möchte Updates für den AVG Virenscanner für Rechner die nicht am Internet hängen vollautomatisch von der AVG Webseite laden...
  2. 2 Spalten in EINER Textdatei GETRENNT addieren

    2 Spalten in EINER Textdatei GETRENNT addieren: Hey, bin ein ziemlicher Neuling in Sachen programmieren. Nun steh ich vor dem Problem, dass ich 2 Zahlenspalten inner Textdatei (vim) getrennt...
  3. Timestamp an Inhalt einer Textdatei anfügen

    Timestamp an Inhalt einer Textdatei anfügen: Hallo, ich als neuer, unerfahrener Nutzer von Linux und der bash hätte folgende Frage. Und zwar würde ich gerne mit einem command den Zeitstempel...
  4. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  5. SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird

    SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird: Hallo Ich bin andauernd Opfer einer Brute Force Attacke. Die IPs die fehlerhafte Logins produzieren werden nach dem 3ten Versuch gesperrt. Aber...