bash 式で単一の qoutes をエスケープするにはどうすればよいfind . | xargs perl -pi -e 's/'conflicts' => '',//g'
ですか? ファイル内の文字列 'conflicts' => '' を置き換えたいですか?
12338 次
3 に答える
14
FatalError と gpojd はどちらも適切な解決策を提供しています。もう1つのオプションでこれを締めくくります:
find . | xargs perl -pi -e 's/\x27conflicts\x27 => \x27\x27,//g'
これが機能するのは、Perl ではs/.../.../
表記がバックスラッシュ エスケープをサポートしているためです。\x27
16 進数のエスケープです ( '
U+0027 です)。
于 2013-05-22T20:20:04.003 に答える
11
一重引用符内で直接エスケープすることはできないため、一重引用符を取得するには、次のようにする必要があります。
$ echo 'i'\''m a string with a single quote'
i'm a string with a single quote
これにより、引用された部分が終了し、引用符の外側に表示される単一引用符がエスケープされ、再び引用が開始されます。結果は 1 つの引数のままです。
于 2013-05-22T20:02:27.883 に答える
5
代わりに、コードを二重引用符で囲みます。
find . | xargs perl -pi -e "s/'conflicts' => '',//g"
于 2013-05-22T20:14:02.167 に答える