我有一个带反引号的字符串:
this is `some` text
我想在反引号之前加一个反斜杠:
this is \`some\` text
我尝试过:
s/`/\`/g
但这导致原始文本:
this is `some` text
和:
s/`/\\`/g
但这会导致双反斜杠:
this is \\`some\\` text
我尝试了许多其他技巧,但没有运气。
答案 0 :(得分:2)
您的第二个应该工作...
#!/usr/bin/perl
use strict;
use warnings;
use feature qw/say/;
my $string = "a string with `backticks` in it";
say "Before: $string";
$string =~ s/`/\\`/g;
say "After: $string";
产生
Before: a string with `backticks` in it
After: a string with \`backticks\` in it
答案 1 :(得分:0)
从没有数据::: Dumper 的文件中以单行方式使用它:
perl -pe 's/\`/\\`/g' file
this is \`some\` text
答案 2 :(得分:0)
或与sed
sed 's/[`]/\\\`/g' file
说明。
使用 character类 [...]
保护您想要替换的字符,然后使用POSIX形式的转义"\\"
逃避实际的'\'
您希望包含在替代文本中。