0

我是 bash 脚本的新手,目前正在尝试编写脚本但失败了。我有一个需要输入脚本的配对样本列表,该脚本会将 2 个文件合并为 1 个文件。合并2个文件的脚本是:

./mergePEsam.pl file1_1.sam file1_2.sam file.merge.sam

D3_524_1_tr.fq.gz.sam
D3_524_2_tr.fq.gz.sam
D3_525_1_tr.fq.gz.sam
D3_525_2_tr.fq.gz.sam
D3_526_1_tr.fq.gz.sam
D3_526_2_tr.fq.gz.sam
WT_541_1_tr.fq.gz.sam
WT_541_2_tr.fq.gz.sam
WT_542_1_tr.fq.gz.sam
WT_542_2_tr.fq.gz.sam

我正在尝试创建一个循环,该循环将使用上面的脚本通过并合并 sample_1.sam 和 sample_2.sam。到目前为止我写的失败的脚本是:

for r1 in "~scratch/leafcutter/olego.alignment"/*1_tr.fq.gz.sam; do
        r2=${r1%_tr.fq.gz.sam}_tr.fq.gz.sam
        if [[ -f $r2 ]] ; then
                users/djaime/anaconda/leafcutter3/olego/mergePEsam.pl "$r1" "$r2" "${r1/_*/}".merge.sam
        else
                echo "$r2 not found" >&2
        fi
done

帮助将不胜感激

4

2 回答 2

1

在当前脚本中,r2 设置为与 r1 相同的名称。从描述看,应该设置为_2文件。考虑将 _1 替换为 _2 的小修复:

r2=${r1%1_tr.fq.gz.sam}2_tr.fq.gz.sam
于 2020-07-25T19:13:24.710 回答
0

你想如何合并两个文件?如果您只想在 file1_1.sam 之后连接 file1_2.sam,

cat file1_1.sam file1_2.sam > file.merge.sam
于 2020-07-25T23:04:34.277 回答