我有一个 csv 文件,列出了两个物种(例如物种 A 和 B)之间的直系同源基因。我正在尝试使用 grep 来查找 B 中特定 A 基因的直系同源物。
例如,我想要 A 基因 AT1G01070 在 B 中的直系同源物
grep "AT1G01070" table.csv | cut -d"," -f 2,3,4
我立即得到了以下三个 B 基因的结果
"Csa17g001550.1,Csa14g002110.1,Csa03g002170.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
一次向命令提供一个参数,awk
用于分隔成换行符:
awk -F',' '/AT1G01070/ {print $2"\n"$3"\n"$4 }' table.csv |\
xargs -L 1 commandtofollow
现在commandtofollow
将一次使用一个 B 基因作为参数。