我有一个文件,每行有两个文件名,如下所示:
file1.fastq.gz file2.fastq.gz
...
file9fastq.ga file10fastq.gz
如何将这两个名称作为脚本的参数传递?
答案1
使用while read
循环:
while read -r file1 file2 trash; do
something with "$file1" and "$file2"
done < /path/to/input_file
这将逐行读取您的输入文件,分别设置file1
第一file2
列和第二列。 trash
可能是不必要的,但我喜欢包含它来处理您可能遇到的事情,例如:
file1.fastq.gz file2.fastq.gz foo
如果您的文件包含类似上面的一行,并且您没有包含该trash
变量(或类似的变量),则您的file2
变量将设置为:file2.fastq.gz foo
答案2
xargs
是另一种方式,如果您的文件格式与您所说的完全一样:每行两个空格分隔的字段(注意省略号...
)。
< input xargs -n2 ./script-here
input
...将逐行读取名为的文件并将两个参数传递给./script-here
.
您可以重新安排重定向:
xargs -n2 ./script-here < input
...如果它对您有更好的直观意义。