Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何打印每个匹配行的行号?_Regex_Perl - Fatal编程技术网

Regex 如何打印每个匹配行的行号?

Regex 如何打印每个匹配行的行号?,regex,perl,Regex,Perl,我想从文件中提取一些行,并在每个提取行前面输出行号 例如,在名为file This is line1 This is line2 This is test1 This is test2 This is linex 我得到这个: This is test1 This is test2 这是test1 这是test2 但是我想在行首插入行号 line3: This is test1 line4: This is test2 第3行:这是test1 第4行:这是test2 如何插入行号?实际上,我认为

我想从文件中提取一些行,并在每个提取行前面输出行号

例如,在名为
file

This is line1 This is line2 This is test1 This is test2 This is linex 我得到这个:

This is test1 This is test2 这是test1 这是test2 但是我想在行首插入行号

line3: This is test1 line4: This is test2 第3行:这是test1 第4行:这是test2
如何插入行号?

实际上,我认为使用grep更容易:

grep -n test file

保留行号的变量是
$。
,因此在
print
函数的双引号中使用它:

perl -ne 'if (/test/) {print "line$.: $_"}' file
它产生:

line3: This is test1
line4: This is test2
line3: This is test1
line4: This is test2