Chinaunix
标题:
提取相应数据
[打印本页]
作者:
gooderpan
时间:
2016-10-27 23:24
标题:
提取相应数据
本帖最后由 gooderpan 于 2016-10-27 23:29 编辑
有一个文件file:
>Gene.12654::
NM_000014
::g.12654::m.12654 Gene.12654::NM_000014::g.12654 ORF len:1475 (+) NM_000014:114-4538(+)
MGKNKLLHPSLVLLLLVLLPTDASVSGKPQYMVLVPSLLHTETTEKGCVLLSYLNETVTV
SASLESVRGNRSLFTDLEAENDVLHCVAFAVPKSSSNEEVMFLTVQVKGPTQEFKKRTV
MVKNEDSLVFVQTDKSIYKPGQTVKFRVVSMDENFHPLNELIPLVYIQDPKGNRIAQWQS
>Gene.1744::
NM_000016
::g.1744::m.1744 Gene.1744::NM_000016::g.1744 ORF len:565 (+) NM_000016:2-1696(+)
ASPPTVQRNRALPAPPPSPSPALALFPRCGQPRRPTERARGGNAENQTRTIRDCPERGCD
>Gene.13727::
NM_000017
::g.13727::m.13727 Gene.13727::NM_000017::g.13727 ORF len:452 (+) NM_000017:2-1357(+)
GPAPEALRAWPLSRVPPPSTPEQRARSGRSRSLGLCLSPMAAALLARASGPARRALCPRA
WRQLHTIYQSVELPETHQMLLQTCRDFAEKELFPIAAQVDKEHLFPAAQVKKMGGLGLLA
前一个“>”与后二个“>”前的内容为一组,提取“>”后面相应的字符串,想要得到的结果为:
>
NM_000014
MGKNKLLHPSLVLLLLVLLPTDASVSGKPQYMVLVPSLLHTETTEKGCVLLSYLNETVTV
SASLESVRGNRSLFTDLEAENDVLHCVAFAVPKSSSNEEVMFLTVQVKGPTQEFKKRTV
MVKNEDSLVFVQTDKSIYKPGQTVKFRVVSMDENFHPLNELIPLVYIQDPKGNRIAQWQS
>
NM_000016
ASPPTVQRNRALPAPPPSPSPALALFPRCGQPRRPTERARGGNAENQTRTIRDCPERGCD
>
NM_000017
GPAPEALRAWPLSRVPPPSTPEQRARSGRSRSLGLCLSPMAAALLARASGPARRALCPRA
WRQLHTIYQSVELPETHQMLLQTCRDFAEKELFPIAAQVDKEHLFPAAQVKKMGGLGLLA
请问大神,这个又该怎么分析呀???
作者:
moperyblue
时间:
2016-10-28 08:12
awk -F'::' '/>/{$0=">"$2}1' file
复制代码
作者:
gooderpan
时间:
2016-10-28 08:21
回复
2#
moperyblue
我是初学者,请问大神从'>'开始,后面的code这是什么意思呀??
作者:
moperyblue
时间:
2016-10-28 08:39
回复
3#
gooderpan
man awk
-F fs
--field-separator fs
Use fs for the input field separator (the value of the FS predefined variable).
/>/ => 含有">" 的行(如 第一行)
$0 => 整行. 如: >Gene.12654::NM_000014::g.12654::m.12654 Gene.12654::NM_000014::g.12654 ORF len:1475 (+) NM_000014:114-4538(+)
$2 => 该行的第二个域(字段),含有">"的行,按'::'分隔后第二个域就是NM_000014
$0=">"$2 就是将该行替换成">NM_000014"
1 <=> 1{print} 就是打印行
作者:
moperyblue
时间:
2016-10-28 08:43
sed '/>/{s/[^>:]*:://;s/:.*//}' file
复制代码
作者:
jason680
时间:
2016-10-28 08:53
回复
3#
gooderpan
http://bbs.chinaunix.net/thread-2309494-1-1.html
作者:
jcdiy0601
时间:
2016-10-28 09:14
awk 'BEGIN{FS="[:]+"}{if($1~/^>/){print ">"$2}else{print}}' file
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2