find/xargs/perl -ne的当前文件名?

pau*_*eim 4 perl xargs perlvar

我使用的壳工作,试图找到一堆CSV文件NUL字符(Python的CSV进口商是哀一下,不过那是另一个时间),所以骄傲 - 的 - 我 - 不断巧妙自:

find ~/path/ -name "*.csv" -print0 | \
xargs -n 1 -0 \
perl -ne 'if(m/\x{00}/){print fileno(ARGV).join(" ",@ARGV).$_;}'
Run Code Online (Sandbox Code Playgroud)

除了我看不到文件名.据称,包含perl -ne我的脚本的隐式<>运算符只是使用@ARGV/ ARGVfilehandle,但上面的两个都没有给我当前文件的名称.

如何查看上面的当前文件名(以及理想情况下的行号)?

gee*_*aur 10

$ARGV是当前文件的名称,$.是当前行号; 见perldoc perlvarI/O操作员perldoc perlop.(注意,$.不会在文件之间重置;有关于此的讨论perldoc -f eof.)

我并不完全确定你要用它做什么print; 它会给你的文件句柄数,这可能是3,预先考虑到的文件名的一个空格分隔的列表(其可能应该是因为只有一个xargs -n),则当前行,其中将包括所述NUL和其他潜在终端混淆的字符.