Bashスクリプト分割ファイル名

Bashスクリプト分割ファイル名

次のbashスクリプトがあります。

#!/bin/bash

for r in $(find . -name "*.fastq");
do

  cat <<EOF
  #qsub <<EOF
#!/bin/bash -l

#PBS -N $r

EOF

done

残念ながら、すべてのファイル名が分割されます。

> sh  cFiltering_pbs.sh 
  #qsub <<EOF
#!/bin/bash -l

#PBS -N ./76A

  #qsub <<EOF
#!/bin/bash -l

#PBS -N Paired.fastq

  #qsub <<EOF
#!/bin/bash -l

#PBS -N ./104A

  #qsub <<EOF
#!/bin/bash -l

#PBS -N Paired.fastq

以下は検索出力です。

find . -name "*.fastq"
./76A Paired.fastq
./104A Paired.fastq

私が逃したものは何ですか?

答え1

findを使用する代わりに、ファイル自体を簡単に繰り返すことができます。周囲に二重引用符を入れたことに注意してください"$r"。ファイル名の空白をそのままにしてシェルから解析しない場合は、これが必要です。

for r in *.fastq
do
    # Stuff using "$r"...
    :
done

関連情報