複数のファイルを単一のファイルハンドルに割り当てようとしています。そこからファイルハンドル全体を処理して特定のパターンを探し、それを FIN_RESULTS に書き込みます。
Linux
exp ファイル
my/dir1/RESULTS
my/dir2/RESULTS
など。
これが私の厄介な試行錯誤でした
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 スクリプト自体を上書きしてしまいます。
助けてくれてありがとう!!!!!当初考えていたことを実行することができました。
特定のディレクトリのみを検索するように検索を実装することは可能ですか?
my/abc_dir1/RESULTS
my/dsa_dir2/RESULTS
my/afx_dir3/RESULTSがある場合など
しかし、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 というエラーが表示されます。そのため、ファイルハンドルを複数回開くことはできません。私に何ができるかについて何か提案はありますか?