Mit Sed ersetzen Sie eine Zeichenfolge durch eine andere Zeichenfolge?
Ich habe dies ausprobiert:
sed -i 's/'Twas/It certainly was/g' *.txt
irgendwelche Vorschläge??
- Ich glaube, ich weiß, was falsch ist, aber in der Zukunft, beschreiben Sie bitte, was passiert ist, als auch, was Sie erwartet, wenn Sie eine Frage stellen wie diese. Das macht es viel einfacher für Menschen, um herauszufinden, was Los ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Doppelte Anführungszeichen verwenden,
Den Apostroph in
'Twas
wird interpretiert als ein Angebot schließen (von der shell, nicht sed), und dann die anschließende single quote nach/g
wird interpretiert als eine öffnen zitieren, die fröhlich verschlingt alle den Weg an das Ende des Skripts (oder die Eingabeaufforderung, und dann bekommen Sie die geheimnisvolle>
das bedeutet, dass die shell denkt, es gibt mehr zu kommen). Für diese situation,sollte funktionieren; jedoch, shell double-quoted strings können tun eine Menge Dinge, die Sie don ' T wollen in der Regel mit sed-Programme. Wenn es eine regexp Metazeichen überhaupt dort würde ich tun, anstatt zu
sed
weil es nicht unterstützt word-Grenze entspricht. Aberperl -pi~ -e 's/\bthe\b/a/g; s/\bThe\b/A/g'
wird es tun. Ich kenne keinen klugen Weg, beides zu tun Ersetzungen mit einem regexp, aber vielleicht jemand anderes tut.Versuchen Sie es mit folgenden
grep -rl "Alte Zeichenkette" directoryPath | xargs sed -i 's/old_string in/new String/g'
Beispiel :
grep -rl 10.113.1.115 matchdir | xargs sed -i 's/10.113.1.115/10.113.1.65/g'