rice related analysis

[linux]根据一串ID批量提取另外一个文件的指定行

2018-11-03  本文已影响85人  郑宝童

一、待解决问题

    科室里的一个小伙伴打算根据A文件中的ID列,提取B文件中所有包含相应ID的行。

二、解决办法

    左思右想觉得这个处理过程还是用linux来做比较简单。
#!/bin/bash

cat -A ref.txt | while read id;
do
    real_id=`echo $id| cut -d"^" -f1`
    grep $real_id GCF_000001405.38_GRCh38.p12_genomic.gff >>ref.gff
done

三、解析

四、代码思路

cat提取整个文件内容;用|管道符号传给 while read读取,
由于window下的回车符号与Linux下的回车不一样:window下的回车到了linux下会多出^M,所以在代码中用cut -d"^"分割文件,并取第一部分作为ID。最后使用grep 搜索ID 然后>>输出到ref.gff文件去

上一篇 下一篇

猜你喜欢

热点阅读