ヘッドテストエリア。ベッド
21 15390708
21 15890068 16388793
21 16390041 16888505
21 16889055 17388185
21 17388731 17886839
.bedファイルの各行を出力名として使用したいと思います。たとえば、次のようになります。
while readline
do zip.sh > 21_15390708_ 15889554.zip
21_16390041-16888505.zip
xargsがこれを行うことができるという内容を読みました。ただし、各行を一意の出力ファイル名で出力する方法は混乱しています。
xargs -a testregions.bed -I {} zip inputfile {} >> outputfile_{}.zip
など。どんな助けでも大変感謝します。
答え1
以下は、次のように使用できるわかりやすい方法ですtestregions.bed
。まず、元のファイルからすべてのスペースを削除し、数字のみを新しいtestregions.bed
ファイルに保存します。new.txt
cat testregions.bed | tr -d "[:blank:]" > new.txt
次に、次のように各行に新しいファイルを作成しますnew.txt
。
cat new.txt | while read line do touch "$line".zip done
その後、以下を削除できますnew.txt
。
rm new.txt
test.sh
したがって、.zip
ファイルを生成するスクリプトはtestregions.bed
次のようになります。
#!/bin/sh
cat testregions.bed | tr -d "[:blank"]" > new.txt
cat new.txt | while read line
do
touch "$line".zip
done
rm new