Text 使用sed命令删除特定行中的所有数字
这可能存在于其他地方,但我找不到它。我的目标是从blast搜索中删除额外的数字,以便在保留数字序列id的同时提取序列数据 原始:Text 使用sed命令删除特定行中的所有数字,text,sed,replace,Text,Sed,Replace,这可能存在于其他地方,但我找不到它。我的目标是从blast搜索中删除额外的数字,以便在保留数字序列id的同时提取序列数据 原始: >k141_100041 flag=0 multi=242.9841 len=43238 Sbjct 16375 MSEELTQNSGSNYSASSIQVLEGLEAVRKRPAMYIGDISEKGLHHLVYEVVDNSIDEALA 16196 Sbjct 16195 GYCTHIEVTINEDNSITVQDNGRGIPVDFHEKEKKSALEVV
>k141_100041 flag=0 multi=242.9841 len=43238
Sbjct 16375 MSEELTQNSGSNYSASSIQVLEGLEAVRKRPAMYIGDISEKGLHHLVYEVVDNSIDEALA 16196
Sbjct 16195 GYCTHIEVTINEDNSITVQDNGRGIPVDFHEKEKKSALEVVMTVLHAGGKFDKGSYKVSG 16016
Sbjct 16015 GLHGVGVSCVNALSTHMTTNVFRNGKIYQQEYECGKPLYAVKEVGTTDITGTRQTFWPDG 15836
Sbjct 15835 SIFTVTEYKYSILQARMRELAYLNKGITITLTDKRVKEEDGSYKQEKFHSEEGVKEFVRF 15656
Sbjct 15655 LNSNNTPLIDDVIYLNTEKQGIPIECAIMYNTGFRENLHSYVNNINTIEGGTHEAGFRMA 15476
Sbjct 15475 LTRVLKKYAEESKALEKAKVEISGEDFREGLIAVISVKVSEPQFEGQTKTKLGNNEVSGA 15296
Sbjct 15295 VNQAVGEALTYYLEEHPKEAKIIVDKVVLAATARVAARKARESVQRKSPMGGGGLPGKLA 15116
Sbjct 15115 DCSSRVAEECELFLVEGDSAGGSAKQGRSRQFQAILPLRGKILNVEKAMWHKAFESDDVN 14936
Sbjct 14935 NIIQALGVRFGVDGEEDSKKANIDKLRYHKVIIMTDADVDGSHIDTLIMTLFYRYMPEVI 14756
Sbjct 14755 QGGHLYIATPPLYKCSKGKISEYCYTDEARQAFIQKYGEGNEQGIHTQRYKGLGEMNPEQ 14576
Sbjct 14575 LWETTMNPETRILKQVNIENAAEADYIFSMLMGDDVGPRREFIEKNATYANIDA 14414
目标:
我可以使用sed命令轻松删除'Sbjct'行和数字,但我不知道如何从sed命令中免除id行(k141_112817…)。任何帮助都将受到感谢
sed -E '/^>/n;s/\S+\s*//4;s///2;s///1' file
GNU与-E
一起使用以允许扩展正则表达式
保留以/^>/n
开头的行(使用
命令)n
删除第四个单词<代码>\S是非空白s/\s+\s*//4
删除第二个单词(替换中的空匹配项将使用上一个匹配项)s///2
删除第一个单词s///1
sed
是错误的工具,因为您似乎想要:
awk '/^Sbjct/{$0 = $3}1' input-file
这可能适用于您(GNU-sed):
当遇到以Sbjct
开头的行时,删除前两个字段和最后一个字段(以及中间的空格)
这是sed可解的,但在这种情况下,我同意William Pursell的观点,并将使用Awk。
sed-n-r'1p;s/([^]+)\s+([^]+)\s+(.{61})。*/\3/gp'inputfile
应该帮助您简单地匹配需要处理的行,并用行中选定的字符范围替换整行。类似这样的:sed-e的/Sbjct[[:space:][[:space:]*[0-9][0-9]*[:space:][:space:]*\([^[:space:]]]*\[:space:]./\1/'input
上面的方法同样有效,但我认为使用awk命令(下面)是一种更简单的方法。谢谢你的意见!是的,你完全正确,它工作得非常完美,我认为它比sed命令要简单得多。非常感谢你的帮助!
awk '/^Sbjct/{$0 = $3}1' input-file
sed -E '/^Sbjct/s/.* .* (\S+) .*/\1/' file