【发布时间】:2014-09-08 17:48:13
【问题描述】:
我有这个脚本:
#!/bin/bash
FASTQFILES=~/Programs/ncbi-blast-2.2.29+/DB_files/*.fastq
FASTAFILES=~/Programs/ncbi-blast-2.2.29+/DB_files/*.fasta
clear
for file in $FASTQFILES
do cat $FASTQFILES | perl -e '$i=0;while(<>){if(/^\@/&&$i==0){s/^\@/\>/;print;}elsif($i==1){print;$i=-3}$i++;}' > ~/Programs/ncbi-blast-2.2.29+/DB_files/"${FASTQFILES%.*}.fasta"
mv $FASTAFILES ~/Programs/ncbi-blast-2.2.29+/db/
done
我正在尝试获取$FASTQFILES 中定义的文件,将.fastq 转换为.fasta,使用与输入相同的文件名命名输出,然后将其移动到新文件夹。例如,~/./DB_files/HELLO.fastq 应该给出转换后的~/./db/HELLO.fasta
问题在于转换的输出是第一个文件夹中名为.fasta 的正确格式的隐藏文件,而不是预期的名为HELLO.fasta 的隐藏文件。所以mv 没什么。我认为我在 ${FASTQFILES%.*}.fasta 参数中搞砸了,但我似乎无法修复它。
【问题讨论】:
标签: bash input output filenames