Perl内に 'paste'とAWKスクリプトを使用する次のコードがあります。Perlの中でpasteとawkを使うにはどうすればいいですか?
use strict;
use Data::Dumper;
use Carp;
use File::Basename;
my @files = glob("result/*-*.txt");
my $tocheck = $ARGV[0] || "M";
foreach my $file (@files ) {
my $base = basename($file,".txt");
my @res = `paste <\(awk '\$4 == "M" {sum += \$2 }END{print sum}' $file \) <\(awk '\$4 == "M" {sum += \$3 }END{print sum}' $file\)`;
chomp(@res);
print "$base $res[0]\n";
}
それは、このようなエラーを与える理由:
#sh: -c: line 1: syntax error near unexpected token `('
#sh: -c: line 1: `paste <(awk '$4 == "M" {sum += $2 }END{print sum}' result/9547_1-S_aureus.txt) <(awk '$4 == "M" {sum += $3 }END{print sum}'
#result/9547_1-S_aureus.txt)
それを行うための正しい方法は何ですか?
perl 1.0はAWKの*置換*と見なされます。将来のためにそれを念頭に置いてください。 –