ファイルリストのテキストファイルから引数または引数に行を渡す

ファイルリストのテキストファイルから引数または引数に行を渡す

次のように、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最初の列とfile22番目の列をそれぞれ設定します。 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

…直感的に理解が良くなれば。

関連情報