Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在linux文件中添加特定模式后的单词_Linux_Sed - Fatal编程技术网

如何在linux文件中添加特定模式后的单词

如何在linux文件中添加特定模式后的单词,linux,sed,Linux,Sed,我有大约3000个文件(系统发育树文件),其中有一些特定的基因,我想在之后插入{Foreground}: 比如, (CBREN_CBREN.CBN09275:0.1505047394,((((((CBREN_CBREN.CBN30237:0.1134434184,CDOUG_CDOUG.g12077.t1:0.1229043127)92:0.0214649873,(CTRO_Csp11.Scaffold630.g17672.t1:0.0631318986,CWALLA_CWALL.g8382.t

我有大约3000个文件(系统发育树文件),其中有一些特定的基因,我想在之后插入{Foreground}

比如,

(CBREN_CBREN.CBN09275:0.1505047394,((((((CBREN_CBREN.CBN30237:0.1134434184,CDOUG_CDOUG.g12077.t1:0.1229043127)92:0.0214649873,(CTRO_Csp11.Scaffold630.g17672.t1:0.0631318986,CWALLA_CWALL.g8382.t1:0.0753910535)92:0.0239057141)93:0.0325662116,((CBRI_CBG17629:0.0312071500,CNIGO_CNIGO.Cni-ugt-54:0.0736951024)99:0.0494942769,(CSINI_CSINI.Csp5_scaffold_00095.g4122.t1:0.0606700444,(CTRIBU_CTRIB.g6645.t1:0.0736535896,CZANZI_CZANZ.g13363.t1:0.0688400206)58:0.0091500887)100:0.0582326665)83:0.0238218345)64:0.0211630102,(CLAT_CLATE.FL83_14023:0.0101547146,CREMA_CREMA.FL82_03023:0.0239757985)100:0.0954119437)99:0.0555252013,(CELE_T25B9.7:0.1602734533,CINO_Sp34_40094810.t1:0.2305325582)93:0.0423976759)99:0.1230996301,(CJPJ_00498800.t1:0.0895372175,CJPJ_00700900.t1:0.1411739758)100:0.1285915300)100:0.8994859943,(((((((CBRI_CBG13049:0.0452507889,CNIGO_CNIGO.Cnig_chr_II.g5360.1:0.0660490258)68:0.0042384566,CNIGO_CNIGO.Cnig_chr_II.g5361.1:0.0321380678)100:0.0949970282,(CSINI_CSINI.Csp5_scaffold_00169.g6176.t1:0.0626931406,CZANZI_CZANZ.g6858.t1:0.0894503797)100:0.0715162764)100:0.0539156634,(CLAT_CLATE.FL83_09404:0.0252696400,CREMA_CREMA.FL82_14428:0.0155270060)100:0.0771958234)73:0.0198698760,CELE_T03D3.1:0.2195730426)85:0.0368288871,CDOUG_CDOUG.g745.t1:0.1814046140)65:0.0156158577,CWALLA_CWALL.g18942.t1:0.1591453045)78:0.0306577438);
我需要的是在每个CELE…,CBRI的之前包含{Foreground}。。和CTRO

比如说,

CTRO_Csp11.Scaffold630.g17672.t1{Foreground}:0.0631318986
CELE_T03D3.1{Foreground}:0.2195730426
CBRI_CBG17629{Foreground}:0.0312071500
在这些树匹配的一个文件中。并且一个接一个地作为单独的文件

我试过了

cat OG0000733.tree |sed -e 's/CINO_Sp34_........\.t1/&{Foreground}/g' > edited.tree

但是每个基因在之后的字符数是不同的。

替换为重复任意次数但不会太远的字符。看起来可能是个冒号:

CINO_Sp34_[^:]*\.t1
使用

(CELE | CBRI | CTRO)[^::]*
表达式查找
CELE
CBRI
CTRO
,然后查找除冒号以外的任何零个或多个字符

替换是整个匹配文本(
&
)和一个
{front}
字符串

sed -E 's/(CELE|CBRI|CTRO)[^:]*/&{Foreground}/g' OG0000733.tree > edited.tree