我一直在尝试将多个文件分配给一个文件句柄。然后从那里处理整个文件句柄以查找特定模式,然后将其写入 FIN_RESULTS。
Linux
exp文件
我的/dir1/结果
我的/dir2/结果
等等
这是我笨拙的尝试
open (FIN_RESULTS, ">", "FIN_RESULTS.txt") or die $!;
open(RESULTS, "-|"," find my/ -name RESULTS -print0 | xargs -0 cat");
while(<RESULTS>){
if(/match_something/){
do some commands;
print FIN_RESULTS $_;
}
close FIN_RESULTS;
close RESULTS;
但我最终只是用当前目录的 ls 覆盖了 perl 脚本本身。
感谢帮助!!!!我能够实现我最初的想法。
我有第二个问题,是否可以通过只查找特定目录的方式来实现查找?
就好像我有
我的/abc_dir1/结果
我的/dsa_dir2/结果
我的/afx_dir3/结果
但我只想搜索 dir2 和 dir3。
@array1 = qw( dir2 dir3);
foreach $array1(@array1)
{ open(RESULTS, "-|"," find my/*$array1 -name RESULTS -print0 | xargs -0 cat");
}
但我得到这个错误,xargs: cat: terminated by signal 13。 所以不允许多次重新打开一个文件句柄。关于我可以做什么有什么建议吗?
最佳答案
假设您真的想进行外部查找:
open RESULTS, "-|", "find my -name RESULTS -print0 | xargs -0 cat"
应该做你想做的。
关于linux - Perl,如何使用管道将多个文件分类到同一个文件处理程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962353/