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";您需要这样做才能保持文件名中的空格完整并且不会被 shell 解析。

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

相关内容