小编use*_*677的帖子

区分大小写的替换;相同的目标 ID

我自己很难在文本文件中进行区分大小写的替换。请在下面找到我作为 sed -f file.sed < input.txt > output.txt 运行的 sed 文件的一部分

 s/\<code_229633_13\>/R77_08349T0/
 s/\<code_229633_138\>/R77_09738T0/
 s/\<code_230519_10\>/R77_04813T0/
 s/\<code_230519_1\>/R77_13591T0/
 s/\<code_230519_13\>/R77_05463T0/
 up to line 14521....
Run Code Online (Sandbox Code Playgroud)

代码工作得很好,但我也有这样的情况,我有 2 个或更多目标 ID(code_010512_23 和 code_299097_0)重叠相同的替换 ID(R77_14520T0),我希望输出类似 R77_14520T0.a 和 R77_14520T0.b (行如下1和2)

s/code_010512_23/R77_14520T0/ --> R77_14520T0.a
s/code_299097_0/R77_14520T0/ --> R77_14520T0.b
Run Code Online (Sandbox Code Playgroud)

此外,一个更复杂但类似的情况是当我有以下输入文件(input2.txt 文件)时

  ID=gene09464;Name=code_229633_13;isoforms=1           
  ID=mRNA10661;Parent=gene09464;Name=code_229633_13         
  ID=exon26192;Parent=mRNA10661;Name=code_229633_13;Target=R77_08349T0  1   1093    +
  ID=exon26193;Parent=mRNA10661;Name=code_229633_13;Target=R77_08349T0  1094    1873    +

  ID=gene09491;Name=code_229633_138;isoforms=1          
  ID=mRNA10690;Parent=gene09491;Name=code_229633_138            
  ID=exon26252;Parent=mRNA10690;Name=code_229633_138;Target=R77_09738T0 1   411 +

  ID=gene09513;Name=code_230519_10;isoforms=1           
  ID=mRNA10715;Parent=gene09513;Name=code_230519_10         
  ID=exon26311;Parent=mRNA10715;Name=code_230519_10;Target=R77_04813T0  1   59  +
  ID=exon26312;Parent=mRNA10715;Name=code_230519_10;Target=R77_04813T0  60  186 +

  ID=gene09511;Name=code_230519_1;isoforms=1            
  ID=mRNA10713;Parent=gene09511;Name=code_230519_1          
  ID=exon26308;Parent=mRNA10713;Name=code_230519_1;Target=R77_13591T0   1   1075    +
  ID=exon26309;Parent=mRNA10713;Name=code_230519_1;Target=R77_13591T0   1076    1128    +

  ID=gene09514;Name=code_230519_13;isoforms=1           
  ID=mRNA10716;Parent=gene09514;Name=code_230519_13 …
Run Code Online (Sandbox Code Playgroud)

sed python perl

4
推荐指数
1
解决办法
5514
查看次数

标签 统计

perl ×1

python ×1

sed ×1