Hallo, ich suche eine _simple_ Möglichkeit in der Shell eine Ersetzung durchzuführen in etwa so:
echo Mein String|replace "Mein" "Dein"
ich habe es mit replace und mit sed probiert doch beide Verwenden RegExp was nicht gewünscht ist (da ich mir dann noch die Mühe machne müßte bestimmte Zeichen zu escapen). mfg Stefan
On Tuesday 21 October 2003 17:10, Stefan Heinrichsen wrote:
ich suche eine _simple_ Möglichkeit in der Shell eine Ersetzung
durchzuführen in etwa so:
echo Mein String|replace "Mein" "Dein"
ich habe es mit replace und mit sed probiert doch beide Verwenden RegExp was nicht gewünscht ist (da ich mir dann noch die Mühe machne müßte bestimmte Zeichen zu escapen).
Vielleicht mit Perl?
perl -p -e 's/searchregexp/newtext/g' <infile >outfile
oder
perl -p -i -e 's/searchregexp/newtext/g' file1 file2 file3
(inplace)
...jetzt muß man nur noch Perl beibringen, 'searchregexp' zu escapen bzw. als
escaped zu behandeln. Perl kann das bestimmt.
Mal nachsehen...
CU
--
Stefan Hundhammer
On Tuesday 21 October 2003 17:23, Stefan Hundhammer wrote:
...jetzt muß man nur noch Perl beibringen, 'searchregexp' zu escapen bzw. als escaped zu behandeln. Perl kann das bestimmt.
...und zwar so:
perl -p -e 'BEGIN { $old="larifari"; $new="neuerText"; $old=quotemeta($old); } s/$old/$new/g' <infile >outfile
'quotemeta()' escaped die Regexp-Sonderzeichen.
CU
--
Stefan Hundhammer
Am Die 21.10.03 um 17:43 CEST schrieb Stefan Hundhammer
On Tuesday 21 October 2003 17:23, Stefan Hundhammer wrote:
...jetzt muß man nur noch Perl beibringen, 'searchregexp' zu escapen bzw.> als escaped zu behandeln. Perl kann das bestimmt.
...und zwar so:
perl -p -e 'BEGIN { $old="larifari"; $new="neuerText"; $old=quotemeta($old); } s/$old/$new/g' <infile >outfile
Was die Einfachheit schon wieder zerstört. außerdem soll der Text nihct aus Dateien sonder vom stdin oder als Parameter kommen (ersteres bevorzugt) mfg
On Tuesday 21 October 2003 19:14, Stefan Heinrichsen wrote:
Was die Einfachheit schon wieder zerstört. außerdem soll der Text nihct aus Dateien sonder vom stdin oder als Parameter kommen (ersteres bevorzugt)
Willst Du eine Lösung, die funktioniert, oder eine möglichst einfache
Shell-Zeile? ;-)
Für die Parameterübergabe kann man das natürlich noch weiter aufbohren - z.B.
perl -p -e 'BEGIN { $old=shift; $new=shift; $old=quotemeta($old); } \
s/$old/$new/g' <infile >outfile 'old' 'new'
CU
--
Stefan Hundhammer
participants (2)
-
Stefan Heinrichsen
-
Stefan Hundhammer