perl -i.orig -pse 'while (($i = index($_,$s)) >= 0) { substr($_,$i,length($s), $r)}'--\
-s='$_REQUEST['\'old\'']' -r='$_REQUEST['\'new\'']' sample.txt
-i.orig
In-Place-Änderung mit Backup.
-p
Zeilen aus der Eingabedatei standardmäßig drucken
-s
rudimentäres Parsing von Befehlszeilenargumenten ermöglichen
-e
dieses Skript ausführen
index($_,$s)
Suche nach dem $s
列
substr($_,$i,length($s), $r)
die Zeichenfolge ersetzen
while (($i = index($_,$s)) >= 0)
wiederholen bis
--
Ende der Perl-Parameter
-s='$_REQUEST['\'old\'']'
, -r='$_REQUEST['\'new\'']'
- gesetzt $s
, $r
Sie müssen immer noch "entkommen" '
Zeichen, aber der Rest sollte kein Problem sein.
Anmerkung: Dies begann als Antwort auf Wie übergibt man Sonderzeichen an sed daher die $_REQUEST['old']
Saiten, aber diese Frage ist etwas treffender formuliert.