Mittels SED Text ersetzen in Anführungszeichen
Moin …
bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen
ich habe Quelldateien in denen Texte massiv ersetzt werden sollen, stehen alle in Anführungszeichen.
"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"
steht der Text nicht in Anführungszeichen soll dieser auch nicht ersetzt werden.
also
ABC -> ABC
mit..ABC.. -> mit..ABC..
kann ich dies mittels SED lösen ? SED dann mittels Script auf alle Dateien anzuwenden ist ja nicht das Problem, nur der SED Syntax
Danke euch & Gruss aus dem Urlaub
bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen
ich habe Quelldateien in denen Texte massiv ersetzt werden sollen, stehen alle in Anführungszeichen.
"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"
steht der Text nicht in Anführungszeichen soll dieser auch nicht ersetzt werden.
also
ABC -> ABC
mit..ABC.. -> mit..ABC..
kann ich dies mittels SED lösen ? SED dann mittels Script auf alle Dateien anzuwenden ist ja nicht das Problem, nur der SED Syntax
Danke euch & Gruss aus dem Urlaub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 488398
Url: https://administrator.de/forum/mittels-sed-text-ersetzen-in-anfuehrungszeichen-488398.html
Ausgedruckt am: 21.04.2025 um 20:04 Uhr
9 Kommentare
Neuester Kommentar
Moin,
Ja! Was ist dss Problem?
Da gibt's Tutorials.
lks
PS: Die Anführungszeichen stören nicht wirklich.
Zitat von @nekron:
"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"
kann ich dies mittels SED lösen ?
"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"
kann ich dies mittels SED lösen ?
Ja! Was ist dss Problem?
sed -e "s:ABC:DEF:g" datei.txt
Da gibt's Tutorials.
lks
PS: Die Anführungszeichen stören nicht wirklich.
https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Comman ...
Einfach die Referenzen nutzen,
Um die Teile zwischen Anführungszeichen und zu ersetzendem String zu erhalten.
lks
Einfach die Referenzen nutzen,
Um die Teile zwischen Anführungszeichen und zu ersetzendem String zu erhalten.
lks

Zitat von @nekron:
Mein Problem - sorry hab ich vergessen zu erwähnen
Ohne Anführungszeichen soll nichts ersetzt werden.
also
ABC soll ABC bleiben.
Na dann schreib sie halt mit in dein Suchpattern Mein Problem - sorry hab ich vergessen zu erwähnen
Ohne Anführungszeichen soll nichts ersetzt werden.
also
ABC soll ABC bleiben.
Oder wie Lochkartenstanzer schon schreibt wenn da außer dem Suchstring noch mehr zwischen den Anführungszeichen steht benutze Submatches https://regex101.com/r/Kn6uKa/2/

Joa ... wenns zum richtig kopieren noch nicht mal mehr reicht, dann ist Hopfen und Malz verloren.
Regex muss man selbst lernen, alles andere bringt einen nüscht viel weiter. Es ist wie es ist, wenn ich zum Angeln gehe werfe ich ja auch nicht erst mal ein Ölfass als Köder in den See
.
sed -re 's/("[^"]*)ABC([^.][^"]*"|")/\1DEF\2/gi' test.txt >test2.txt
Das kommt davon wenn man sich mit dem allen einfach zu wenig auseinandersetzt, es würde mir leider ne menge Arbeit ersparen
Dann nehme keine Aufträge an die du nicht erledigen kannst.