Скажем, у вас есть
$ cat file.txt
This line has $variable
DO NOT PRINT ME! $variableNope
$variable also
Затем с помощью следующей программы
#! /usr/bin/perl -l
use warnings;
use strict;
system("grep", "-P", '\$variable\b', "file.txt") == 0
or warn "$0: grep exited " . ($? >> 8);
вы получите вывод
This line has $variable
$variable also
Он использует переключатель -P
для GNU grep , который соответствует регулярным выражениям Perl. Эта функция все еще является экспериментальной, поэтому действуйте осторожно.
Также обратите внимание на использование system LIST
, которое обходит кавычки оболочки, позволяя программе указывать аргументы с правилами цитирования Perl, а не с оболочкой.
Вы можете использовать переключатель -w
(или --word-regexp
), как в
system("grep", "-w", '\$variable', "file.txt") == 0
or warn "$0: grep exited " . ($? >> 8);
чтобы получить тот же результат.