循环遍历具有多个输入的 shell 脚本的文件夹中的文件
Looping over files in a folder for shell script with multiple inputs
为命令行工具指定多个输入?
我是 bash 的新手,我想在包含大量文件的文件夹上循环命令行程序。
该脚本接受两个输入文件(在我的例子中,它们在文件名的一个字段中有所不同(“...R1”与“...R2")。运行 该工具的单个实例如下所示:
tool_name infile1 infile2 -o outfile_suffix
实例:
casper sample_name_R1_001.out.fastq sample_name_R2_001.out.fastq -o sample_name_merged
文件名格式:
DCP-137-5102-T1A3_S33_L001_R1_001.fastq
DCP-137-5102-T1A3_S33_L001_R2_001.fastq
不同对(例如 2000、2110、5100 等...)的粗体字段会有所不同,每对由 R1 或 R2 区分。
我想知道如何在包含多对匹配文件的文件夹上循环脚本,并确保输出 (-o) 获得 'sample_name' 后缀。
我熟悉基本的 for file in ./*.*; do ... $file...; done
但这显然不适用于此示例。如有任何建议,我们将不胜感激!
您想遍历 R1
并从中导出 R2
和合并文件名,例如:
for file1 in ./*R1*; do
file2=${file1/R1/R2}
merge=${file1#*R1}_merged
casper ${file1} ${file2} -o ${merge}
done
注意:Markdown 将 #*R1}_merged
显示为评论——它不是
为命令行工具指定多个输入?
我是 bash 的新手,我想在包含大量文件的文件夹上循环命令行程序。
该脚本接受两个输入文件(在我的例子中,它们在文件名的一个字段中有所不同(“...R1”与“...R2")。运行 该工具的单个实例如下所示:
tool_name infile1 infile2 -o outfile_suffix
实例:
casper sample_name_R1_001.out.fastq sample_name_R2_001.out.fastq -o sample_name_merged
文件名格式:
DCP-137-5102-T1A3_S33_L001_R1_001.fastq
DCP-137-5102-T1A3_S33_L001_R2_001.fastq
不同对(例如 2000、2110、5100 等...)的粗体字段会有所不同,每对由 R1 或 R2 区分。
我想知道如何在包含多对匹配文件的文件夹上循环脚本,并确保输出 (-o) 获得 'sample_name' 后缀。
我熟悉基本的 for file in ./*.*; do ... $file...; done
但这显然不适用于此示例。如有任何建议,我们将不胜感激!
您想遍历 R1
并从中导出 R2
和合并文件名,例如:
for file1 in ./*R1*; do
file2=${file1/R1/R2}
merge=${file1#*R1}_merged
casper ${file1} ${file2} -o ${merge}
done
注意:Markdown 将 #*R1}_merged
显示为评论——它不是