に私が入った文字列を置換する文字列 "/" コードperlの
の下に使用して、Perlを使用していますfile.txtをが
/usr/open/xyz -getCh $svr
コード
を含む "/" スラッシュを含む文字列を置換しますopen(FILE, "</tmp/file.txt") || die "File not found";
my @lines = <FILE>;
close(FILE);
my $stringToReplace = "\/usr\/open\/xyz -getCh \$svr";
my $stringToReplaceWith = "echo \"y\" | \/usr\/open\/xyz -getCh \$svr";
my @newlines;
foreach(@lines) {
$_ =~ s/$stringToReplace/$stringToReplaceWith/g;
push(@newlines,$_);
}
open(FILE, ">/tmp/file.txt") || die "File not found";
print FILE @newlines;
close(FILE);
上記のコードは私にとっては機能しません。
デュードを働く文字通り
取りたい場合は、エスケープする必要があります。任意の文字を使用して、正規表現の罫線をマークすることができます。どのように "動作しない"かに関する情報を提供していないので、 "/"を使用して正規表現に印を付けるので問題があると仮定します。 $ _ =〜〜{$ stringToReplace} {$ stringToReplaceWith} g;この例では の代わりにこの行を使用します。 –
これはスラッシュとは関係ありません。問題は(たぶん)正規表現の '$'が文字通りのドル記号ではなく文字列の終わりを探すことです。しかし、「コードは機能していません」というのは問題の説明ではなく、問題を自分で追跡するのにはあまり費やしていないようです(あなたのコードは最小限ではありません)。 – melpomene
すべてのPerlファイルを 'use strict;警告を使う; '。 – melpomene