Strings ersetzen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von MrBourne, 26.03.2006.

  1. #1 MrBourne, 26.03.2006
    MrBourne

    MrBourne Grünschnabel

    Dabei seit:
    26.03.2006
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo zusammen,

    ich möchte in einer oder mehreren Dateien einen vorgegebenen String durch einen anderen String ersetzen.
    Eine Datei sieht z.B. wie folgt aus :
    #testdatei
    name='test'
    name1=test
    name2="test"
    #END

    Das Skript soll nur 'test' durch 'test1' ersetzen. name1 und name2 sollen
    aber nicht geändert werden!

    sed 's/'test'/'test1'/g' < datei > datei.neu

    funktioniert leider nicht.

    sed 's/"'test'"/"'test1'"/g' < datei > datei.neu
    oder
    sed 's/\'test\'/\'test1\'/g' < datei > datei.neu

    leider auch nicht.
    Mit tr bekomme ich es irgenwie auch nicht hin.
    Da ich eigentlich aus der MS-Ecke komme, bin ich mit dem Quoting und
    regulären Ausdrücke noch nicht so wirklich fit.
    Vielleicht kann mir jemand auf die Sprünge helfen.
    Besten Dank schon einmal.

    Gruß
     
  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 Wolfgang, 26.03.2006
    Zuletzt bearbeitet: 26.03.2006
    Wolfgang

    Wolfgang Foren Gott

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

    Warum nicht einfach so?
    sed -e 's/test/test1/g' datei > datei.neu

    tr kann nur einzelne Zeichen ersetzen/löschen.

    Gruß Wolfgang

    Edit:
    wenn du wirklich die Hochkomma mit einfangen willst ( was ich in deinem Beispiel aber für übeflüssig gehalten habe) dann wird es etwas tricky:
    ;)
    sed -e 's/'\''test'\''/'\''test1'\''/g'
    oder einfache in doppelte:
    sed -e 's/'\''test'\''/'\"'test1'\"'/g'
     
  4. #3 MrBourne, 26.03.2006
    MrBourne

    MrBourne Grünschnabel

    Dabei seit:
    26.03.2006
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Wolfgang,

    danke erst einmal für die schnelle Antwort.

    sed -e 's/test/test1/g' datei > datei.neu

    würde aber jedes test ersetzen. Es soll aber nur 'test' ersetzt werden
    (test oder "test" sollen nicht angerührt werden).

    Gruß
    MrBourne
     
  5. #4 Wolfgang, 26.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Hoffe mein EDIT des ersten Beitrages war das was du wolltest.
    Nochmal für 'test'
    sed -e 's/'\''test'\''/'\''test1'\''/g'
    Hier noch für die "test"
    sed -e 's/'\"'test'\"'/'\"'test1'\"'/g'

    HTH
    Gruß Wolfgang
     
  6. #5 MrBourne, 26.03.2006
    MrBourne

    MrBourne Grünschnabel

    Dabei seit:
    26.03.2006
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Wolfgang,

    das 2. Beispiel für die "test" läuft.
    Das 1. für 'test' ersetzt aber auch nur die "test".

    Das würde ja auch einfacher mit sed -e 's/\"test\"/\"test1\"/g' laufen.

    Gruß
    MrBourne
     
  7. Anzeige

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

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Sicher hast du da einen Fehler drin.
    Das rote sind zwei Hochkomma (2* ') und nicht ein doppeltes "!
    sed -e 's/'\''test'\''/'\''test1'\''/g'

    Gruß Wolfgang
    PS Kopier das mal, dann wirst du es sehen.
     
  9. #7 MrBourne, 26.03.2006
    MrBourne

    MrBourne Grünschnabel

    Dabei seit:
    26.03.2006
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Wolfgang,

    tja man muss es nur richtig machen und schon geht es :)
    Aber wie gesagt, solange beschäftige ich mich mit dem Thema
    noch nicht.

    Thanx noch einmal für die superschnelle und kompetente Hilfe ....

    Gruß
    MrBourne
     
Thema: Strings ersetzen
Besucher kamen mit folgenden Suchen
  1. sed string ersetzen

    ,
  2. sed ersetzen string

Die Seite wird geladen...

Strings ersetzen - Ähnliche Themen

  1. Editor, ersetzen von strings im mehreren Files

    Editor, ersetzen von strings im mehreren Files: Hallo, ich suche einen einfachen buttonorientierten Editor, der mir einen String in zahlreichen geladenen Textfiles gleichzeitig ersetzt,...
  2. Strings vergleichen und ersetzen

    Strings vergleichen und ersetzen: Hallo! ich komme bei meinem Problem irgendwie nicht weiter. Ich habe zwei Log Dateien, in der ersten stehen logs mit einer falschen IP (die mir...
  3. alles außer letzte 4 strings

    alles außer letzte 4 strings: Hallo, ich habe verschieden lange Strings (Dateinamen) und möchte gerne den Dateinamen als Variable ausgeben: 1. Strings...
  4. Mehere Strings aus unterschiedlichen Zeilen zusammenführen

    Mehere Strings aus unterschiedlichen Zeilen zusammenführen: hi@all, stehe vor einem Problem und habe keine Ahnung wie ich vorgehen kann. Folgende Aufgabenstellung: Ich habe eine große Text Datei und...
  5. Hilfe bei bash - Shellscript gesucht: zusammengehörende Strings in Konfigdatei

    Hilfe bei bash - Shellscript gesucht: zusammengehörende Strings in Konfigdatei: Hallo zusammen, bin leider noch kein Skript-Guru, das folgende Problem wird wohl sehr in die Tiefen von substr, split, regulären Ausdrücken...