String von einer Datei rauslöschen btw. editieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von El Kassem, 23.06.2008.

  1. #1 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo @alle
    Ich brauch wieder mal kurz eure Hilfe.
    Ich habe z.B. eine Datei mit folgenden Inhalt

    Christian
    Robert

    ich will nun den string von der datei per Shellskript "löschen"
    Also logisch so :

    Robert > löschen

    Falls das nicht geht, möchte ich gern den String editeren mit nichts.

    also so ..

    Robert > " " (also mit einer leertaste ersetzen..was ja den wert 0 in meinem Fall entspricht..)


    Danke @all
     
  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 bytepool, 23.06.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    grep oder sed sind deine Freunde. Was du konkret brauchst, haengt von den konkreten Daten ab.
    Viele Wege fuehren nach Rom.

    mfg,
    bytepool
     
  4. #3 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    Oke dann werd ich genauer :
    Folgenden Befehl habe ich mir "erarbeitet" :
    sed "s/$VARIABLE/''/g" /uac/DATEI

    so der ebfehl sollte folgendes tun..
    er soll die Variable mit ' ' ersetzen in der Datei

    LIEBER wäre es mir wenn er es komplett rauslöscht, falls das geht ?

    Ich hoffe ihr (du) weißt was ich meine ?
     
  5. #4 bytepool, 23.06.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    Wenn du den String mit einem leeren String ersetzt, loescht du den String ja schon. Aber falls du meinst, dass du die ganze Zeile geloescht haben willst, dann ginge das z.B. mit grep (mit der komplement option) und redirection. Wahrscheinlich geht es auch direkt mit sed, was wohl effizienter waere, aber ich kenn mich mit sed selber nicht wirklich aus, der substitution Befehl reicht mir meistens. ;)

    mfg,
    bytepool
     
  6. #5 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    Hmm.. Ich finde nichts in der manuel .. (man grep) auch nicht unter grep --help..
    ??
    Könntest du mir vllt das Beispiel an meinen obigen anpassen (mit grep..das wäre ja egal :) )
     
  7. #6 Tblue, 23.06.2008
    Zuletzt bearbeitet: 23.06.2008
    Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Code:
    grep -v "$VARIABLE" /pfad/zur/datei|cat > /pfad/zur/datei
    Kann grep das auch direkt wieder in die Datei schreiben (wie sed mit der -i-Option)?
     
  8. #7 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    sorry... ich werd vielleicht lästig...
    Aber .. Wo kann ich in deinen Code das "Muster" eingeben also :

    TEXT und TEXT1 (der text der editet werden soll)
    Und warum elite ich das ganze auf eine Datei um ?
    Ich will in der Datei bleiben.
    Mein Skript ist von der Datei abhängig.

    PS: Zusätzliche ist TEXT eigendlich eine Variable also $TEXT
     
  9. Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Hm, also was willst du genau machen? Mein Beispiel würde die Datei auslesen, alle Zeilen, die auf das Muster aus $VARIABLE zutreffen, ausfiltern und alles wieder in die Ursprungsdatei zurückschreiben.
     
  10. #9 Gott_in_schwarz, 23.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Das wird die Datei leeren Tblue... (Und dazu ist da noch ein cat zuviel *hust*)

    Mit sed geht das mit dem "d" (für delete) Befehl:
    Code:
    sed -e '/Robert/d' infile
    Wenn man das mit grep macht, sollte man den -F switch benutzen..
    @TE: Mit grep kann man nicht wirklich Muster-Ersetzungen machen, du hast ja auch schließlich gesagt, dass die Zeile einfach nur gelöscht werden soll..
     
  11. #10 Tblue, 23.06.2008
    Zuletzt bearbeitet: 23.06.2008
    Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Ja, ohne das cat. Mit nicht:
    Code:
    [tilman@h2g2-42:~/tmp]% cat test; echo -----; grep -vi hans test|cat > test; cat test;
    Hermann
    Elke
    Hans
    Josef
    -----
    Hermann
    Elke
    Josef
    //edit: Hm, das klappt allerdings nicht immer. Die Methode mit sed ist dann wohl besser.
     
  12. #11 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    Gut.. es geht nicht ! :)
    Hier das Script.

    function bannuserdel
    {
    echo "Welchen User wollen Sie von der Bannliste entfernen?"
    read bannuserdel
    echo "Der User $bannuserdell soll von der Bannliste entfernt werden?"
    echo "[J] - Ja"
    echo "[N] - Nein"
    read bannuserdelfrage
    if [ $bannuserdelfrage == "J" ]
    then
    sed -e "/$bannuserdel/d" /uac/bannlist
    elif [ $bannuserdelfrage == "j" ]
    then
    sed -e "/$bannuserdel/d" /uac/bannlist
    elif [ $bannuserdelfrage == "N" ]
    then
    exit
    elif [ $bannuserdelfrage == "n" ]
    then
    exit
    else
    echo "Sie können nur zwischen Ja und Nein auswählen."
    fi
    echo -e "\033[0;32mUser wurde von der Bannliste gelöscht.\033[0m"
    bannuser
    }


    Vllt könnt ihr mein Problem nun feststellen ??
     
  13. #12 Gott_in_schwarz, 23.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    @El Kassem: sed schreibt auf stdout. Benutz den -i switch (wenn vorhanden) oder besser: benutz eine temporäre Datei...
    Um herauszufinden, wie du das machst: benutz dein Hirn.

    @Tblue: bei mir wird die Datei so geleert. Welche shell benutzt du denn? (ich benutz bash; das Prozentzeichen in deinem Prompt sieht irgendwie so nach csh aus..)
     
  14. #13 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    Es geht !!! *so happy*
    Danke ! :)
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    @Gott_in_schwarz, fast, ich benutze die zsh. Aber wie schon gesagt, dass klappt auch nicht immer; manchmal wird die Datei geleert, manchmal nicht.
     
  17. #15 El Kassem, 23.06.2008
    El Kassem

    El Kassem scan my network and die

    Dabei seit:
    23.01.2008
    Beiträge:
    74
    Zustimmungen:
    0
    2. Frage
    Ich möchte mit einem Skript. eine Varibale ($USER) in eine Datei schreiben
    Wenn ich das aber like this tue :
    echo " $USER " >> datei
    und ich das skript ausführe..
    schreibt mir der in die Datei nicht :
    $USER
    sondern root (oder mit welchen user ich halt angemldet bin..)

    Frage ist, wie geht das ?
    Das ich die Variable per Skript reinschreiben kann.
    (Die Variable sollte auch so bleiben hat mit etc/Profile zu tun... also bei jedem User beim einloggen ändert sich die Variable )
     
Thema:

String von einer Datei rauslöschen btw. editieren

Die Seite wird geladen...

String von einer Datei rauslöschen btw. editieren - Ähnliche Themen

  1. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...
  2. string anhand einer Länge zerlegen?

    string anhand einer Länge zerlegen?: Huhu Community! Ich habe gestern Abend bis ca 24 Uhr an einem Problem verbracht und es nicht zu meiner Zufriedenheit gelöst. Hoffe ihr könnt...
  3. String nach einer Zahl abschneiden

    String nach einer Zahl abschneiden: Hallo, also ich möchte die zeilean aus einer Datei als ergebnis haben, die mit einer Zahl beginnen. Ich möchte aber nur die Zahl als Ergebnis...
  4. FIND mit UND-Verknüpfung im Suchstring

    FIND mit UND-Verknüpfung im Suchstring: Hallo, ich schaffe es einfach nicht bei folgendem Kommando die Suchoptionen zu erweitern, damit nur Dateien beginnend mit "T_*" aufgelistet...
  5. String auf Konsole ausgeben

    String auf Konsole ausgeben: Hallo zusammen, ich bin auf ein Problem gestoßen dass für mich sehr unverständlich ist, aber vllt übersehe ich auch etwas Offensichtliches. Es...