2つの種(例えば、種AとB)の間の異種遺伝子をリストするcsvファイルがあります。 Bで特定のA遺伝子のオソログを見つけるためにgrepを使用しようとしています。
例えば、私はBのA遺伝子AT1G01070のオソログが欲しい。
grep "AT1G01070" table.csv | cut -d"," -f 2,3,4
私は3つのB遺伝子についてすぐに次のような結果を得ました。
"Csa17g001550.1,Csa14g002110.1,Csa03g002170.1"
ただし、一度に1つの遺伝子/次のコマンド/プログラムが必要です。どうすればいいですか?
答え1
スクリプトのこの部分を見て、少なくとも理解することができて嬉しいです。どのように次のステップに情報を提供します。
次のステップで標準入力を処理し、一度に1行ずつ読み取ることができる場合は、次のことができます。
grep "AT1G01070" table.csv | cut -d"," -f 2,3,4 | tr ',' '\n' | next_step
または、次のようなものかもしれません。
grep "AT1G01070" table.csv | cut -d"," -f 2,3,4 | tr ',' '\n' | while read a
do
next_step $a
done
答え2
改行で区切ってxargs
コマンドに一度に1つの引数を提供するために使用されます。awk
awk -F',' '/AT1G01070/ {print $2"\n"$3"\n"$4 }' table.csv |\
xargs -L 1 commandtofollow
commandtofollow
B遺伝子は現在、一度に1つずつ引数として使用されます。