我通常使用perl one line而不是grep来搜索文件。
例如,以下打印包含 #include <stdio.h>
perl -ne "print if(/#include\s*[\"<]stdio.h/)" */*.[ch]
但我找不到打印获取这些行的文件名的方法。我试图打印$ARGV[0]
,但没有用。
那么,如何打印包含这些行的文件名呢?
答案 0 :(得分:10)
包含*ARGV
被打开的文件名称的变量是$ARGV
,而不是$ARGV[0]
(@ARGV
的第一个元素)。
print "$ARGV: $_" if /include\s*[\"<]stdio.h/;
答案 1 :(得分:4)
$ARGV
是当前正在读取的文件名的特殊变量。我相信这就是你所需要的。
答案 2 :(得分:4)