我有一组成对的结束文件,名为
D2_WT_mock1_1.fastq D2_WT_mock1_2.fastq
D2_KO_inf3_1.fastq D2_KO_inf3_2.fastq
D6_KO_inf3_1.fastq D6_KO_inf3_2.fastq
而且,我想执行一个需要同时输入以下内容的命令:
rule.py D2_WT_mock1_1.fastq D2_WT_mock1_2.fastq -o D2_WT_mock1
使用两个成对的结束文件作为输入的地方,并指出输出名称。
我尝试过
for f in *_1.fastq; do
command.py "$f" "${f%_1.fastq}_2.fastq" -o $f;
done
但是由于文件名的格式为
File_something_something_1.fastq
如何确保每次使用正确的对应配对文件作为_1.fastq的输入?还有如何将输出仅命名为前缀术语,例如D2_WT_mock1,而不是像我的命令中那样命名整个文件名。
答案 0 :(得分:0)
尝试一下:
while read line1; do
while read line2; do
echo -n "$line2 "
done <<< $(ls -1 ${line1%_*}*)
echo "-o ${line1%_*}"
done <<< $(ls -1 *1.fastq) |\
while read line3; do
echo "rule.py $line3"
done
输出
rule.py D2_KO_inf3_1.fastq D2_KO_inf3_2.fastq -o D2_KO_inf3
rule.py D2_WT_mock1_1.fastq D2_WT_mock1_2.fastq -o D2_WT_mock1
rule.py D6_KO_inf3_1.fastq D6_KO_inf3_2.fastq -o D6_KO_inf3
答案 1 :(得分:0)
for f in *_1.fastq; do
command.py "$f" "${f/1.fastq/2.fastq}" -o "${f/_1.fastq}";
done