Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Diskutiere Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich habe folgendes Problem. Ich erstelle mit Hilfe einer Shell eine Liste, die vier Spalten mit Zahlenwerten enthält. Wenn die letzte...

  1. #1 ArgonTheGas, 25.07.2018
    ArgonTheGas

    ArgonTheGas Jungspund

    Dabei seit:
    25.07.2018
    Beiträge:
    10
    Zustimmungen:
    0
    Hallo,
    ich habe folgendes Problem.
    Ich erstelle mit Hilfe einer Shell eine Liste, die vier Spalten mit Zahlenwerten enthält. Wenn die letzte Spalte den Wert 0 enthält, möchte ich die Zeile entfernen und die Liste so kürzen. Ich habe dazu folgenden Codezeile:
    Code:
    cat list_1.txt awk '{if ($4!= 0) {print $0}}' > list_1.txt.woBorder
    Leider enthält die Liste list_1.txt.woBorder nach wie vor die Spalte 4 mit dem Wert 0. Weiß jemand, was falsch ist?
    VIelen Dank für die HIlfe.
    Argon
     
  2. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.222
    Zustimmungen:
    17
    Code:
    grep -v "0$" $datei
     
  3. #3 ArgonTheGas, 25.07.2018
    ArgonTheGas

    ArgonTheGas Jungspund

    Dabei seit:
    25.07.2018
    Beiträge:
    10
    Zustimmungen:
    0
    grep -v sucht mir die Zeilen ohne 0 und schreibt sie in eine Datei. Ich möchte jedoch leider nicht alle Zeilen die eine 0 enthalten löschen, sondern nur, wenn die 0 in der vierten Spalte steht.
     
  4. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.222
    Zustimmungen:
    17
    Du sagtest "letzte Spalte nicht 0" - und genau das macht obiges grep - ok, evtl, noch ein ; vor die 0 oder ein , - je nach verwendetem Spaltentrenner.

    Solltest Du es komplexer brauchen - in Deinem Code oben fehlt zumindest min. 1 | nach dem cat...
     
    ArgonTheGas gefällt das.
  5. #5 hellfire, 26.07.2018
    hellfire

    hellfire Doppel-As

    Dabei seit:
    25.05.2016
    Beiträge:
    119
    Zustimmungen:
    14
    Code:
     awk '{if ($NF!= 0) {print $0}}' <list_1.txt > list_1.txt.woBorder
    NF steht bei awk für die Anzahl von Feldern bzw. den Index des letzten Feldes. $NF für den Inhalt des letzten Feldes.

    Allerdings funkioniert bei mir auch Dein ursprünglicher Code - nach dem beheben des von marce angemerkten Pipe-Problems.

    Zeig' mal die Eingabedatei(Code-Tags!)
     
    ArgonTheGas gefällt das.
  6. #6 ArgonTheGas, 01.08.2018
    ArgonTheGas

    ArgonTheGas Jungspund

    Dabei seit:
    25.07.2018
    Beiträge:
    10
    Zustimmungen:
    0
    Vielen Dank für die Antworten! Es hat tatsächlich einfach ein Pipe for dem awk gefehlt...
     
  7. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.222
    Zustimmungen:
    17
    Dann hast Du dich parallel gleich mal für den useless-use-of-cat-award beworben :-)
     
Thema:

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Die Seite wird geladen...

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält - Ähnliche Themen

  1. 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...
  2. Zeilen aus Textdatei löschen die $Var1 enthalten und nicht $Var2

    Zeilen aus Textdatei löschen die $Var1 enthalten und nicht $Var2: Ich habe folgendes Problem: Ich will aus einem Textfile Zeilen entfernen: - die $Variable1 enthalten - aber nicht wenn sie $Variable2 (oder...
  3. Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

    Mit AWK verschiedene Felder verschiedener Zeilen vergleichen: Hallo alle zusammen! Bei folgender Aufgabe komme ich nicht weiter. Hier ist der zu verarbeitende Inhalt einer Datei (die Zeilennummern gehören...
  4. sed am Zeilenende einfügen

    sed am Zeilenende einfügen: Hallo Zusammen, ich möchte in eine ,txt file an jede Zeile ein: /index.php anfügen. Wie stelle ich das an ? habe folgendes versucht : sed 's/$/...
  5. Summe von Zahlen in einer Zeilen bilden

    Summe von Zahlen in einer Zeilen bilden: Auf ein Neues... Ich komme bei folgender Problematik nicht weiter: Ich habe eine Datei (zahlen.txt), die ich einlese mit folgenden Daten: 111 222...
  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