Lo script che funziona specificando al suo interno quello che devo cercare l'ho fatto ed è:
#!/usr/bin/perl
my $argc = $#ARGV + 1;
if ($argc < 2)
{
print "usage: sideroforinome.pl infile1.csv outfile1.csv";
print "\n\n";

exit 1
}

my $inFile1 = $ARGV[0];
my $outFile1 = $ARGV[1];

open(INP1, "<$inFile1") || die "could not open ";
open(OUT1, ">$outFile1") || die "could not open ";

@a = <INP1>;
close (INP1);


foreach $a ( @a ) { if ($a =~ /tonB/i) {
print OUT1 "$a";
}
}

close (OUT1);


Ma ho provato utilizzando questa come base inserendo una lista esterna ma non mi funziona. Mi crea un file vuoto.

Grazie