
次のように、1行に2つのファイル名を持つファイルがあります。
file1.fastq.gz file2.fastq.gz
...
file9fastq.ga file10fastq.gz
これら2つの名前をスクリプトに引数として渡すにはどうすればよいですか?
答え1
while read
ループを使用してください。
while read -r file1 file2 trash; do
something with "$file1" and "$file2"
done < /path/to/input_file
次に、入力ファイルを1行ずつ読み、file1
最初の列とfile2
2番目の列をそれぞれ設定します。 trash
不要な場合がありますが、次のような問題を処理するために含めたいと思います。
file1.fastq.gz file2.fastq.gz foo
ファイルに上記の行が含まれていて、そのtrash
変数(または同様のもの)が含まれていない場合、file2
変数は次のように設定されます。file2.fastq.gz foo
答え2
xargs
もう1つの方法は、ファイル形式が言ったのと同じ場合は、1行に2つのスペースで区切られたフィールドです(省略記号を参照...
)。
< input xargs -n2 ./script-here
input
...という名前のファイルを1行ずつ読み、2つの引数をに渡します./script-here
。
リダイレクトのスケジュールを変更できます。
xargs -n2 ./script-here < input
…直感的に理解が良くなれば。