J'ai besoin d'écrire un script perl pour lire les fichiers gzippés à partir d'une liste de fichiers texte de leurs chemins, puis les concaténer ensemble et les sortir dans un nouveau fichier gzipé. (J'ai besoin de le faire en perl car il sera implémenté dans un pipeline) Je ne suis pas sûr de savoir comment accomplir la partie zcat et la concaténation, comme les tailles de fichier seraient en Gbs, je dois prendre soin du stockage et courir aussi bien.zcat pour lire les fichiers gzip puis les concaténer en Perl
Jusqu'à présent, je peux penser comme -
use strict;
use warnings;
use IO::Compress::Gzip qw(gzip $GzipError) ;
#-------check the input file specified-------------#
$num_args = $#ARGV + 1;
if ($num_args != 1) {
print "\nUsage: name.pl Filelist.txt \n";
exit;
$file_list = $ARGV[0];
#-------------Read the file into arrray-------------#
my @fastqc_files; #Array that contains gzipped files
use File::Slurp;
my @fastqc_files = $file_list;
#-------use the zcat over the array contents
my $outputfile = "combined.txt"
open(my $combined_file, '>', $outputfile) or die "Could not open file '$outputfile' $!";
for my $fastqc_file (@fastqc_files) {
open(IN, sprintf("zcat %s |", $fastqc_file))
or die("Can't open pipe from command 'zcat $fastqc_file' : $!\n");
while (<IN>) {
while (my $line = IN) {
print $outputfile $line ;
}
}
close(IN);
my $Final_combied_zip = new IO::Compress::Gzip($combined_file);
or die "gzip failed: $GzipError\n";
Je suis en quelque sorte pas en mesure de le faire fonctionner. Aussi, si quelqu'un peut guider sur la bonne façon de sortir ce fichier compressé.
Merci!
Avez-vous essayé 'zcat fichier1 fichier2 fichier3 ... filen | gzip> out.gz' (non testé)? –
Avez-vous déjà essayé quelque chose? Parce que tenter de le faire va certainement donner de meilleures réponses. Il y a des modules pour le faire sans trop de difficulté. Ou il ya 'open' d'un tuyau exécutif – Sobrique
@Sobrique J'ai essayé d'utiliser zcat pour lire le fichier gzip mais je ne suis pas sûr si je peux simplement concaténer avec chaque fichier gzip il lit dans la liste – AnkP