查找具有可变文件和路径命名的循环

时间:2018-04-08 00:31:14

标签: bash shell loops find

我正在尝试执行bash循环,对所有扩展名为.sam的文件运行一个简单的进程,该文件可以在目录及其子目录中找到,并使用相同的名称(exc扩展名)作为输入,输出定向到找到输入的同一文件夹。

我得到了以下内容:

...
>bash:/home/madzays/qsub//home/madzays/data/finch_data/combruns_ZF_transcriptomes/ZBND81X_gff/filteredfirstZBND81X_gff.bam: No such file or directory
>bash:/home/madzays/qsub//home/madzays/data/finch_data/combruns_ZF_transcriptomes/ZBND81X_gff/filteredsecZBND81X_gff.bam: No such file or directory
>bash:/home/madzays/qsub//home/madzays/data/finch_data/combruns_ZF_transcriptomes/ZBND82V_gff/filteredfirstZBND82V_gff.bam: No such file or directory
...

但是我收到了这条消息:

Sheets("OEVK").Range("J314").FormulaLocal = "=LARGER(IF(jelolt_lista!$C:$C=OEVK!B314;jelolt_lista!$M:$M);1)"
 Sheets("OEVK").Range("J315").FormulaLocal = "=LARGER(IF(jelolt_lista!$C:$C=OEVK!B315;jelolt_lista!$M:$M);2)"
 Sheets("OEVK").Range("J316").FormulaLocal = "=LARGER(IF(jelolt_lista!$C:$C=OEVK!B316;jelolt_lista!$M:$M);3)"
 Sheets("OEVK").Range("J317").FormulaLocal = "=LARGER(IF(jelolt_lista!$C:$C=OEVK!B317;jelolt_lista!$M:$M);1)"
 Sheets("OEVK").Range("J318").FormulaLocal = "=LARGER(IF(jelolt_lista!$C:$C=OEVK!B318;jelolt_lista!$M:$M);2)"
 Sheets("OEVK").Range("J319").FormulaLocal = "=NAGY(HA(jelolt_lista!$C:$C=OEVK!B319;jelolt_lista!$M:$M);3)"
 Sheets("OEVK").Range("J2:J319").FormulaArray = Sheets("OEVK").Range("J2:J319").Formula

可能有什么不对? 感谢

1 个答案:

答案 0 :(得分:1)

我觉得name变量不包含您想要的内容。尝试使用basename取代名称

for file in $(find ~/data/finch_data/combruns_BF_genomes -name "*.sam" -type f); do name="$(basename $file .sam)" dir=$(pwd $file); samtools view -Sb "$dir"/"$name".sam > "$dir"/"$name".bam; done