对于bash脚本中的作业,使用两个扩展名文件进行循环的最佳方法是什么?

对于bash脚本中的作业,使用两个扩展名文件进行循环的最佳方法是什么?,bash,sh,Bash,Sh,如何同时处理两个扩展名不同的文件。更重要的是,file.fa等文件与file.qv关联,需要同时处理 问题:假设您不知道文件名(basename)和文件数(可能少于数百),只知道这两个文件的文件扩展名 我试过: for i in `ls -1 -v $input_reads_dir/reads/*.csfasta $input_reads_dir/reads/*.qual` ;do job -o /out{i} {i}.fa {i}.qv done 问题: 它不起作用 我担心它可能被f

如何同时处理两个扩展名不同的文件。更重要的是,file.fa等文件与file.qv关联,需要同时处理

问题:假设您不知道文件名(basename)和文件数(可能少于数百),只知道这两个文件的文件扩展名

我试过:

for i in `ls -1 -v $input_reads_dir/reads/*.csfasta $input_reads_dir/reads/*.qual` ;do
    job -o /out{i} {i}.fa {i}.qv
done
问题:

  • 它不起作用
  • 我担心它可能被
    file1.csfasta
    file2.qual误导,这是不正确的,或者我不应该害怕

  • 首先检查相应的文件是否存在

    for f in *.csfasta
    do
      if [ -f "${f%.csfasta}.qual" ]
      then
        dosomething "$f" "${f%.csfasta}.qual"
      fi
    done
    

    首先检查相应的文件是否存在

    for f in *.csfasta
    do
      if [ -f "${f%.csfasta}.qual" ]
      then
        dosomething "$f" "${f%.csfasta}.qual"
      fi
    done
    

    首先检查相应的文件是否存在

    for f in *.csfasta
    do
      if [ -f "${f%.csfasta}.qual" ]
      then
        dosomething "$f" "${f%.csfasta}.qual"
      fi
    done
    

    首先检查相应的文件是否存在

    for f in *.csfasta
    do
      if [ -f "${f%.csfasta}.qual" ]
      then
        dosomething "$f" "${f%.csfasta}.qual"
      fi
    done
    

    我打电话给ls bcz是为了确保我在处理与A.csfasta A.qual相同的文件,并希望从中生成输出。这不是解析
    ls
    output的原因。不要那样做。在Ignacio的回答中使用glob。我正在调用ls bcz,我想确保我正在处理与a.csfasta a.qual相同的文件,并希望从中生成输出。这不是解析
    ls
    输出的原因。不要那样做。在Ignacio的回答中使用glob。我正在调用ls bcz,我想确保我正在处理与a.csfasta a.qual相同的文件,并希望从中生成输出。这不是解析
    ls
    输出的原因。不要那样做。在Ignacio的回答中使用glob。我正在调用ls bcz,我想确保我正在处理与a.csfasta a.qual相同的文件,并希望从中生成输出。这不是解析
    ls
    输出的原因。不要那样做。在Ignacio的回答中使用类似glob的选项。这对我不起作用:(但是,我在脚本中已经检查了文件的存在性,所以我认为没有必要这样做。(什么都没有发生,只是工具显示了他的输入参数)对于f in$input\u reads\u dir/reads/*.csfasta do solid2fastq-o$output\u dir/before\u qc/$f“${f%.csfasta}.qual” done@unique379
    $f
    是代码段中文件的完整路径。如果要将输出路径粘贴到裸文件名上,则需要使用
    basename
    或类似工具来深入到裸文件名。这对我不起作用:(但是,我以前在脚本中已经检查了文件存在性,因此,我认为没有必要这样做。(什么也没发生,只是工具显示了他的输入参数)f在$input\u reads\u dir/reads/*.csfasta do solid2fastq-o$output\u dir/before\u qc/$f“${f%.csfasta}.qual” done@unique379
    $f
    是代码段中文件的完整路径。如果要将输出路径粘贴到裸文件名上,则需要使用
    basename
    或类似工具来深入到裸文件名。这对我不起作用:(但是,我以前在脚本中已经检查了文件存在性,因此,我认为没有必要这样做。(什么也没发生,只是工具显示了他的输入参数)f在$input\u reads\u dir/reads/*.csfasta do solid2fastq-o$output\u dir/before\u qc/$f“${f%.csfasta}.qual” done@unique379
    $f
    是代码段中文件的完整路径。如果要将输出路径粘贴到裸文件名上,则需要使用
    basename
    或类似工具来深入到裸文件名。这对我不起作用:(但是,我以前在脚本中已经检查了文件存在性,因此,我认为没有必要这样做。(什么也没发生,只是工具显示了他的输入参数)f在$input\u reads\u dir/reads/*.csfasta do solid2fastq-o$output\u dir/before\u qc/$f“${f%.csfasta}.qual” done@unique379
    $f
    是代码段中文件的完整路径。如果要将输出路径粘贴到裸文件名上,则需要使用
    basename
    或类似工具来获取裸文件名。