Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Shell script für replacement

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.09.2007
    Beiträge
    18

    Shell script für replacement

    Hallo,

    ich möchte gerne aus einem Textfile Zeilen entfernen, die bestimmte Eigenschaften haben
    (z.B. alle Zeilen mit weniger als 3 Zeichen sollen entfernt werden)

    1) Die erste Idee war, dass ich "einfach"

    Code:
    sed -i 's@text      @@g' file.txt
    mache, also alle Zeilen lösche, die mehr als 3 Leerzeichen haben. Das funktioniert leider
    nicht, da in der ersten Bedingung
    Code:
    @text      @
    keine Leerzeichen akzeptiert werden(?)

    2) Nun verwende ich einen etwas aufwendigeren Code:
    Code:
    #!/bin/bash
    j = 1
    cat file.txt | while read line
    do
    j=$(( $j + 1 ))
    
    count=$(echo $line | wc -c)
    #if [ $count -eq 1  ] ||  [ $count -eq 2  ] ||  [ $count -eq 3 ];
    
    if [ $count -eq 3 ];
    then
    sed -e $j'd' file.txt | tee out.txt
    fi
    done
    Hier ist die Idee, den Textfile durchzugehen und alle Zeilen, die eine bestimmte Bedingung
    erfüllen zu eleminieren.
    Leider macht die Zeile
    Code:
    sed -e $j'd' PT-093A.txt | tee out.txt
    Probleme. Ich denke mal, dass das nicht die richtige Form ist Strings zu einem Kommando zusammenzuführen.
    Wenn jemand eine Lösung oder eine bessere Idee hat, dann würde ich mich freuen.

    Vielen Dank!
    gordon2

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.09.2007
    Beiträge
    18
    Hallo,

    ich habe eine Lösung gefunden, die mein Problem löst

    Code:
    awk 'length()>4' input.txt > output.txt
    Die Beantwortung meiner vorherigen Frage ist nun
    fakultativ..;-)

    Grüße
    gordon2

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •