gpt4 book ai didi

linux - Perl,如何使用管道将多个文件分类到同一个文件处理程序中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:41 24 4
gpt4 key购买 nike

我一直在尝试将多个文件分配给一个文件句柄。然后从那里处理整个文件句柄以查找特定模式,然后将其写入 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/

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