我需要循环遍历多个子目录来查找 fastq 文件。
fastq 文件位于 /path/sample/a/b/c/.fastq
目前我用这个:
${inputDir}/**/**/**/*.fastq
我的输入目录仅为:/path/sample,因为它的三个子文件夹我使用“/**/”三次。但有时子文件夹可能不会改变。
有没有其他有效的方法来循环多个子目录。
我的 bash 脚本:
#! /bin/bash -l
CWD=$(pwd)
dateStamp=$(date +%s)
SeqProj="${inputDir}/**/**/**/*.fastq"
for Dir in $SeqProj
do
done
答案1
find / -iname '*.fastq' -exec /path/to/foo.sh {} \;
然后foo.sh
是一个脚本,它执行您在循环内调用的任何操作,使用 $1 引用找到的文件,并将其名称传递给脚本。
迈克的答案也有效,这实际上取决于你想用它做什么......
答案2
最简单的方法是使用find
:
for Dir in $(find "$inputDir" -name '*.fastq')