suchen und ersetzen in mehreren Files

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von hansi1279, 12.03.2007.

  1. #1 hansi1279, 12.03.2007
    hansi1279

    hansi1279 Grünschnabel

    Dabei seit:
    23.02.2007
    Beiträge:
    8
    Zustimmungen:
    0
    Hallo,

    wie kann man Dateien finden und gleichzeitig einen String ersetzen?

    find ./ file | sed 's/hallo/Hallo/g'

    warum geht das nicht?
     
  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 Fallout, 12.03.2007
    Fallout

    Fallout Doppel-As

    Dabei seit:
    02.03.2007
    Beiträge:
    120
    Zustimmungen:
    0
    Code:
    find ./ [B]-name[/B] file | sed 's/hallo/Hallo/g'
     
  4. #3 Wolfgang, 12.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Besser noch -type f , da sed ja keine Verzeichnisse verarbetet.

    Gruß Wolfgang
     
  5. #4 hansi1279, 12.03.2007
    hansi1279

    hansi1279 Grünschnabel

    Dabei seit:
    23.02.2007
    Beiträge:
    8
    Zustimmungen:
    0
    wie kann man das in der Datei ändern? Muss man das mit 'mv /tmp/file.txt' machen? Habs auch schon versucht, aber es wurden file.txt in Verzeichnisse erstellt.
     
  6. #5 Wolfgang, 12.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Wenn du GNU sed hast benutze einfach die Option -i.
    Sonst leite die Ausgabe in eine temporäre Datei um.
    Code:
    find /path -type f -name "name"|sed -i -e 's/foo/bar/g'
    
    Oder eben :
    Code:
    find /path -type f -name "name"| while read I; 
    do
    sed -e  's/foo/bar/g' $I  >/temp/temp.tmp  && cat  /temp/temp.tmp >$I;
    done
    
    Einen Blick in die Manpage kann nicht schaden.

    Gruß Wolfgang
     
  7. #6 hansi1279, 15.03.2007
    Zuletzt bearbeitet: 15.03.2007
    hansi1279

    hansi1279 Grünschnabel

    Dabei seit:
    23.02.2007
    Beiträge:
    8
    Zustimmungen:
    0
    warum klappt das nicht?

    find . -name '*file1' –o –name '*file2' -print| while read i; do sed 's/hallo/hey/g' $i > $i.tmp && mv $i.tmp $i; done;

    bei 2 verschiedenen files müsste es doch ohne Klammer funktionieren
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    manchmal kommt in diesen files auch Hallo oder HALLO vor. wie kann das so machen, dass diese entsprechend ersetzt wird, wie Hey und HEY
     
  8. #7 supersucker, 15.03.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Du bist noch nicht auf den Gedanken gekommen, mal selbstständig einen Blick in die manpage von sed zu werfen. Oder?

    Wenn du dafür zu faul bist, lass es halt.
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Wolfgang, 15.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ja spätestens jetzt wird es Zeit mal in die Manpage von find und sed zu sehen.
    In deinem Fall sollte find beide Dateien finden.

    Wenn du nur alle Vorkommen von Hallo HALLO HaLLo usw durch einheitliches Hey ersetzen willst, nutze die Ersetzungsoption i
    Wenn du nur zwei Varianten der Ersetzung hast, also HALLO durch HEY und Hallo durch Hey:
    Gruß Wolfgang
     
  11. ux2

    ux2 Grendel Kleinbell

    Dabei seit:
    27.07.2006
    Beiträge:
    56
    Zustimmungen:
    0
    Frage zu Beispielscripten

    Hallo Wolfgang,

    mal ne ganz andere Frage, ich seh hier immer wieder Fragen zu "wie mache ich was"

    Beispiele hierzu sind auch fuer mich immer mal ganz hilfreich wenn mal der haken im Detail steckt.

    Gibt es bereits eine Sektion Shell-Scripte wo Scripte zu finden sind und diese natürlich auch kommentiert sind ?

    Gruss Michael
     
Thema: suchen und ersetzen in mehreren Files
Besucher kamen mit folgenden Suchen
  1. ############

Die Seite wird geladen...

suchen und ersetzen in mehreren Files - Ä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...