gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:50:56 24 4
gpt4 key购买 nike

我在 shell 中工作,试图使用如此骄傲的我永远聪明的自我在一堆 CSV 文件中找到 NUL 字符(Python 的 CSV 导入器正在提示,但那是另一次):

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

除了我看不到文件名。据称 perl -ne的隐式<>运算符正在包装我的脚本只是使用 @ARGV/ ARGV文件句柄,但以上都没有给我当前文件的名称。

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

最佳答案

$ARGV 是当前文件的名称和 $. 是当前行号;见 perldoc perlvar和 I/O 运算符 perldoc perlop . (请注意, $. 不会在文件之间重置;在 perldoc -f eof 中对此进行了讨论。)

我不完全确定你想用那个 print 来完成什么;它将为您提供文件句柄编号,可能是 3,附加到一个以空格分隔的文件名列表(由于 xargs -n ,它可能应该只是一个),然后是包含 NUL 的当前行和其他可能会导致终端混淆的字符。

关于perl - find/xargs/perl -ne 的当前文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com