我自己很难在文本文件中进行区分大小写的替换。请在下面找到我作为 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)