使用sed用数字序列替换文本

时间:2019-04-24 08:39:02

标签: awk sed

我有这个:

M6#pro [439640..444247 ][gbkey=CDS]
M6#pro [444328..445335 ][gbkey=CDS]
M6#pro [445407..445772 ][gbkey=CDS]

我想用数字序列代替 pro 一词,所以输出为:

M6#1 [439640..444247 ][gbkey=CDS]
M6#2 [444328..445335 ][gbkey=CDS]
M6#3 [445407..445772 ][gbkey=CDS]

是否可以使用sed做到这一点?我尝试了这个 sed's / pro / NR /',但是它没有产生数字序列。

3 个答案:

答案 0 :(得分:1)

您可以尝试这个。

even less than 1

awk '{sub(/pro/, NR)}1' file 替换为pro(已处理的记录数-基本上是到当前行为止已处理的行数),并替换为NR

答案 1 :(得分:0)

如果您对perl感到满意,请尝试执行以下操作。

perl -pe 'BEGIN{$A=1;} s/pro/$A++/ge'  Input_file

答案 2 :(得分:0)

如果“ d”文件中的数据,请在gnu awk上尝试:

awk -F'pro' '{print $1 NR $2}' d