Suchen und Ersetzen mit SED

Dieses Thema im Forum "Anwendungen" wurde erstellt von Moritz, 18.06.2004.

  1. Moritz

    Moritz Life is hard and so am I

    Dabei seit:
    06.08.2003
    Beiträge:
    367
    Zustimmungen:
    0
    Ort:
    Köln
    Hallo zusammen!

    Ich muss in zigtausend Text-Dateien ein Wort gegen ein anderes austauschen. Das geht mit SED ja folgendermaßen:
    Code:
    sed 's/'SUCHE'/'ERSETZE'/g' *
    Dabei wird allerdings die Datei nicht geschrieben, sondern die Veränderung nur angezeigt. Umleiten kann ich nicht, da ich ja * durchsuchen und ersetzen will. In der Manpage von SED konnte ich den Trigger zum schreiben nicht finden... kann mir wer helfen?

    Grüße,
    Moritz
     
  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. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Aber klar doch

    Siehe dieses kleine Skript hier:
    Code:
    #!/bin/bash
    for item in $*
    do
      cp $item $item.bak
      sed -f ~/.sedfile $item.bak > $item
      rm $item.bak
    done
    
    Ich habe es applysed.sh genannt.
    "applysed.sh FILE"

    Du musst erst eine Kopie deiner Datei anlegen, über diese sed laufen lassen und das Ergebnis in deine alte Datei schreiben..

    Die "sedfile" sieht dann so aus:
    Code:
    s.daß.dass.g
    s.muß.muss.g
    s.Strasse.Straße.g
    
     
  4. Moritz

    Moritz Life is hard and so am I

    Dabei seit:
    06.08.2003
    Beiträge:
    367
    Zustimmungen:
    0
    Ort:
    Köln
    Danke. Das hat geklappt!
     
  5. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Gern geschehen. Wichtig ist halt nur das du NIE sowas machst:
    sed -f ~/.sedfile datei > datei
    Dann wirst du dich mal so ärgern wie ich denn dann ist datei nämlich leer!
     
  6. Moritz

    Moritz Life is hard and so am I

    Dabei seit:
    06.08.2003
    Beiträge:
    367
    Zustimmungen:
    0
    Ort:
    Köln
    Schon probiert ;-)

    Noch'n Problem: Wie kann ich aus allen Dateien die dritte Zeile komplett löschen?
     
  7. Moritz

    Moritz Life is hard and so am I

    Dabei seit:
    06.08.2003
    Beiträge:
    367
    Zustimmungen:
    0
    Ort:
    Köln
    hab's schon....
    3d in die .sedfile
     
  8. #7 Jan Hassler, 25.10.2006
    Jan Hassler

    Jan Hassler Grünschnabel

    Dabei seit:
    25.10.2006
    Beiträge:
    2
    Zustimmungen:
    0
    noob-Frage

    Hallo!

    Ich weiß selbst wie noob diese Frage ist, und es ist mir auch peinlich, aber ich fange nunmal erst an, mich in Linux einzuarbeiten...

    Ich habe ein shell-Script gebaut, das mir genau eine Zeile in genau einer Datei ersetzen soll. Das Script sieht im wesentlichen so aus:
    Code:
    cat $file | sed -e "s/$search/$replacewith/g" > $file
    Jetzt habe ich ein bisschen herumexperimentiert, und versucht einen String zu ersetzen, den es nicht gab. Daraufhin war die geschriebene Datei dann leer.
    Nur schaffe ich es jetzt irgendwie nicht mehr, das zu reproduzieren!?

    Also entweder muss ich vorher noch die Datei sichern, oder meinen SED-Befehl erweitern.
    Ich mach jetzt schon ziemlich lange an diesem Mist rum... Ich wäre super-dankbar für irgendwelche Infos.

    Jan
     
  9. #8 Wolfgang, 25.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Auch hier ein useless use of cat.
    Schau dir mal diesen Beitrag an.
    Da habe ich genau erklärt, warum das nicht geht.
    Wenn du cat weglässt, wird es ersichtlich. ;)
    Das sollte dein Problem lösen.
    Eventuell sollte der Beitrag mal nach Shell verschoben werden.
    Ist aber nur ein Vorschlag von mir.

    Gruß Wolfgang
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Jan Hassler, 25.10.2006
    Jan Hassler

    Jan Hassler Grünschnabel

    Dabei seit:
    25.10.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo Wolfgang,
    Danke für Deine Antwort. Ich habs hinbekommen, auch wenn mein SED den Parameter -i nicht kennt.
    Gruß,
    Jan
     
  12. #10 SD_82, 14.04.2008
    Zuletzt bearbeitet: 15.04.2008
    SD_82

    SD_82 Grünschnabel

    Dabei seit:
    14.04.2008
    Beiträge:
    1
    Zustimmungen:
    0
    Suchen / Ersetzen

    Hallo,
    ich habe auch ein kniffliges (zumindest für mich :)) sed-Problem...
    Habe folgendes vor:

    Ich füge per sed Konmtaktdaten, die zuvor eingelesen wurden, in Formulare ein..
    Bsp:
    sed 's/'"\*FIRMA\*"'/'"${FIRMA}"'/g' > zieldatei

    soweit so gut, ABER:

    wenn jetzt aber der Firmenname bsp ein "&" enthält, verfälscht es den Befehl und rauskommen tut sowas wie:
    Kunz GmbH *FIRMA* Co. KG

    Wie lässt sich das vermeiden?
    Es ist leider nicht möglich, die Sonderzeichen gleich beim Einlesen der Variablen zu erkennen und diese per "\" zu maskieren...
    Hat vielleicht jemand einen Vorschlag? :hilfe2:!
     
Thema: Suchen und Ersetzen mit SED
Besucher kamen mit folgenden Suchen
  1. sed suchen und ersetzen

    ,
  2. linux sed ersetzen

    ,
  3. sed suchen ersetzen

    ,
  4. sed dezimalzahl suchen,
  5. solaris script text durch mehrzeiler ersetzen,
  6. unix suchen ersetzen,
  7. suchen und ersetzen sed,
  8. sed ersetzen,
  9. mit sed suchen und umschreiben,
  10. linux sed text ersetzen,
  11. sed . ersetzten,
  12. linux ersetzen in Datei script,
  13. bash muster ersetzten,
  14. LINUX BASH zeichen tauschen,
  15. sed wöter ersetzen,
  16. sed ersetze string,
  17. bash suchen und ersetzen,
  18. linux shell sed zeichen in string einfügen,
  19. sed nur ein Zeichen erstzen,
  20. linux ersetze \n mit ,
  21. suchen ersetzen bash script,
  22. sed suchen,
  23. sed suchen und erstzen,
  24. suchen ersetzen mit sed,
  25. sed suchen ersetzen erweitern
Die Seite wird geladen...

Suchen und Ersetzen mit SED - Ähnliche Themen

  1. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  2. sed suchen und ersetzen mit Variable übergeben?

    sed suchen und ersetzen mit Variable übergeben?: hallo, ich habe folgenden sed-Befehl, der schon super ist und auch alles tut, was er tun soll, nur eben natürlich das $i einfach hinschreibt...
  3. Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen

    Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen: Hallo liebe Community. Habe ein kleines Problem und bin leider nicht so der Linux-Freak... Ich hoffe mal ihr könnt mir da vielleicht ein wenig...
  4. Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen

    Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen: Hallo zusammen, ich habe bereits diverse Google-Suchergebnisse durchforstet, habe jedoch nirgendwo eine verwertbare Lösung für mein Anliegen...
  5. Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung

    Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung: Hallo, vielen Dank nochmal für die konstruktive Hilfe in meiner letzten Anfrage. Aktuell zu meinem kleinen Auswertungsprojekt habe ich eine...