bash를 사용하여 여러 하위 디렉터리를 반복하여 파일을 찾는 방법

bash를 사용하여 여러 하위 디렉터리를 반복하여 파일을 찾는 방법

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을 사용하여 찾은 파일을 참조하고 해당 이름을 스크립트에 전달합니다.

Mike의 답변도 효과가 있습니다. 실제로 무엇을 하려는지에 따라 다릅니다.

답변2

가장 쉬운 방법은 다음을 사용하는 것입니다 find.

for Dir in $(find "$inputDir" -name '*.fastq')

관련 정보