我想在Perl脚本中调用grep,如下所示:
my $line = `grep "^$name\b" $inputFile`;
当我在终端中运行实际的grep命令时,它会返回预期的内容,但是当我在我的脚本中包含此行时,不会返回任何内容。
如果我将\b
替换为\s
,则会在test.pl第50行通过"无法识别的转义符进行投诉。"
我已经查看了how to use grep to match with either whitespace or newline,但它没有具体说明为什么我的脚本没有返回预期的内容。
如何在Perl中的命令中正确包含\b
或\s
?
答案 0 :(得分:2)
你必须逃避'\'使用grep \\ b
答案 1 :(得分:1)
你不使用反引号 - 你用Perl
写它my $name = 'xyz';
my $line;
while ( <> ) {
next unless /^$name\b/;
$line = $_;
last;
}
如果已知测试的背景,那么这可能不那么笨拙。如果您希望通过
传递正则表达式元字符,则可能需要转义$name
的内容