RegEx-Find&Replace-Editor
-
Ich suche ein Tool, dass in textbasierten Dateien nach bestimmten Regular Expressions suchen kann und diese ersetzen kann. Das Alleinstellungsmerkmal dürfte beim Erstzen liegen: Ich will Teile aus der RegEx wieder rückbeziehend im Ersetzungstext verwenden. Das ist bei den meisten gängigen Editoren nicht der Fall (die können zwar nach RegExes suchen, aber nicht die gefundenen Sub-Parts wieder im Ersatz-Text verwenden).
Kennt jemnad so ein Tool? Einen Editor der sowas unterstützt?
MfG SideWinder
-
sed
-
Damit dann halt sowas möglich wird:
Suche nach: (.*)@(.*) -> Replace ($2)@($1) Macht aus: side@winder winder@side
oder so ähnlich, naja es sollte jetzt klar sein was ich meine
Edit: Soll auch mehrzeilig funktionieren!
MfG SideWinder
-
SideWinder schrieb:
Das ist bei den meisten gängigen Editoren nicht der Fall (die können zwar nach RegExes suchen, aber nicht die gefundenen Sub-Parts wieder im Ersatz-Text verwenden).
Ich weiß ja nicht, was Du unter "gängige Editoren" verstehst, aber das kann eigentlich jeder brauchbare Editor.
Nur die Syntax variiert vermutlich ein bisschen, beim einen Editor musst Du die Gruppierungs-Klammern escapen, beim anderen nicht, etc.
-
SideWinder schrieb:
Macht aus: side@winder winder@side
sed -e 's:\(.*\)@\(.*\):\2@\1:g'
-
Nenn mir einen für Windows - VS kanns soweit ich das sehe nicht mehrzeilig, UltraEdit möglicherweise, kostet aber, naja und Freeware ist da ja eher Mangelware :p
MfG SideWinder
-
Zu sed: Ist eher weniger geeignet. Ist eine Microsoft-Only-Firma, wenn ich denen sage sie sollen mir doch bitte UnixUtils für Windwos installieren krieg ich nix außer nen dummen Blick
MfG SideWinder
-
SideWinder schrieb:
Nenn mir einen für Windows - VS kanns soweit ich das sehe nicht mehrzeilig
Naja, keine Ahnung, das Notepad kann das nicht, das ist mir schon klar. Aber wenn ein Tool das nicht kann, dann darf es sich doch nicht ernsthaft mit RegExp-Unterstützung brüsten, ist ja dann völlig unbrauchbar.
Aber die sed-Variante da oben sollte funktionieren.
-
SideWinder schrieb:
Zu sed: Ist eher weniger geeignet. Ist eine Microsoft-Only-Firma, wenn ich denen sage sie sollen mir doch bitte UnixUtils für Windwos installieren krieg ich nix außer nen dummen Blick
Funktioniert wunderbar, ist Windows und kostet nix, da ist der dumme Blick beim besten Willen nicht gerechtfertigt. Ist ja nicht so, dass sie deswegen gleich ein Unix installieren müssen oder so, Cygwin reicht. (Und hat auch einen klickibunti-Installer und eine .com-Domain. ;))
-
da musst du doch noch nichtmal was installieren fuer. lad dir irgendwo die sed.exe runter oder mail sie dir und gut is.
ausserdem kann ich mir nicht vorstellen, dass eine ganze firma so blind fanatisch ist, dass etwas nicht installiert werden darf, nur weil es auch fuer unix existiert. frag doch denjenigen, der dir das verbietet, wie du das sonst machen sollst. meist hat ja der arbeitgeber ein interesse daran, dass man was tut.
-
das mehrzeilig wird mit sed aber nicht so einfach
-
einfach ist relativ. man muss halt wissen, wies geht.
-
es ist komplizierter, also nicht so einfach. Da ist nichts relativ
-
DrGreenthumb schrieb:
es ist komplizierter, also nicht so einfach. Da ist nichts relativ
relativ auf jeden fall und deshalb auch komplizierter.
!!!!!!!!!!!!!!!!!jenz
-
DrGreenthumb schrieb:
das mehrzeilig wird mit sed aber nicht so einfach
spricht was gegen perl?
Das Multiline lässt sich mit dem m-Flag am Ende machen#! perl.exe my $fileContent = "si\nde\@winder"; $fileContent =~ s/([a-z\n]+)\@([a-z]+)/$2\@$1/m; print $str;
Eingabe:
si de@winder
Ausgabe:
winder@si de