基于 Perl 的解决方案如下所示。
#!/usr/bin/perl
$source_dir = "./source";
$dest_dir = "./dest";
opendir ($source, $source_dir);
@source_files = readdir $source;
foreach $each_file (@source_files){
if($each !~ /^(\.|\.\.)$/) {
open $file_h , "< $source_dir/$each_file";
@contents = <$file_h>;
open $dest_file, ">>$dest_dir/$each_file";
print $dest_file @contents;
@contents =();
}
}
您也可以使用 Shell 脚本执行此操作。一个典型的 shell 脚本如下所示。
#!/usr/bin/sh
source='./source'
dest='./dest'
for file in `ls $source`
do
if [ -e $dest/$file ]
then
cat $source/$file $dest/$file >> $dest/$file."unique_name"
rm $dest/$file
mv $dest/$file."unique_name" $dest/$file
else
cp $source/$file $dest/$file
fi
done
您不能将输入文件用作 cat 的输出。
$ cat 1.fastq 1.fastq > 1.fastq
这将导致您错误地说“ input file is output file
”。