我在路径cd / home / vdas / ChIP-Seq / output /下有多个目录 目录列表
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_12_O_319_K27ac
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_12_O_319_K27me3
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_12_O_319_K4me1
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_12_O_319_K4me3
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_12_O_319_input
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_13_O1_122_K27ac
drwxrwxrwx 3 vdas DPT 7 Feb 2 10:41 S_13_O1_122_K27me3
在每个目录中都有一个* .sorted.bam文件。我想编写一个bash脚本,它将进入每个示例目录并运行以下命令
bedtools bamToBed -i input .bam > out.bed
我写了一个小的bash脚本,但它没有用。你能告诉我哪里出错吗
#!/bin/sh
#
#$ -N bam2bed
#$ -cwd
#$ -e err_bam2bed.log
#$ -o out_bam2bed.log
#$ -S /bin/sh
#$ -M xyz@gmail.com
#$ -m bea
#$ -l h_vmem=25G
cd /home/vdas/ChIP-Seq/output
for x in `ls S*/*.sorted.bam` ; do
echo "print current:$x"
bedtools bamToBed -i "$x" > "${x%.bam}.bed"
done
echo "done"
我在哪里弄错了。我不打算写过重复命令,所以应该是创建for循环的确切方法。如果没有错,这应该没问题。让我知道。
答案 0 :(得分:1)
试试这个
cd /home/vdas/ChIP-Seq/output
for x in S*/*.sorted.bam ; do
echo "print current:$x";
bedtools bamToBed -i "$x" > "${x%.bam}.bed";
done
echo "done"