将字符串替换为“字符串|字符串”

将字符串替换为“字符串|字符串”

我有一个很奇怪的问题。我做了一些生物信息学计算,但我的下游应用程序不会接受当前格式的标头信息。为了避免这个问题,我修改了我的 fasta 标头信息。澄清:

原始标头如下所示:“>abc1”

修改后的标头如下所示:“">abc1|abc1”

现在有130万个头文件被修改,它们都遵循“abc”模式,后面的数字表示contig编号。

我的计算文件大部分都是制表符分隔的值,但它们包含较旧的标头信息。我是否可以使用 awk 或 sed 或类似程序将所有出现的“abc1”自动替换为“abc1|abc1”,以适应所有 130 万次出现的情况?显然,所有 abc2 都是 abc2|abc2,依此类推。

使用修改后的标头信息重新进行计算将需要相当长的时间,所以我真的不想仅仅因为标头信息发生变化而重做工作。

答案1

像这样使用 sed 吗?

sed -r -e 's/^>(abc[0-9]+)/>\1|\1/g' input.txt > output.txt

您最好显示一些实际输入和预期输出以获得更准确的答案。

相关内容