Заменить текст числовой последовательностью, используя sed - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть это:

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 ]

1 голос
/ 24 апреля 2019

Вы можете попробовать это.

awk '{sub(/pro/, NR)}1' file

заменив pro на NR (количество обработанных записей, которое в основном равно числу строк, обработанных до этой текущей строки) на gsub

0 голосов
/ 24 апреля 2019

если данные в файле 'd', попробуйте на GNU AWK:

awk -F'pro' '{print $1 NR $2}' d
0 голосов
/ 24 апреля 2019

Если с perl все в порядке, попробуйте выполнить следующее.

perl -pe 'BEGIN{$A=1;} s/pro/$A++/ge'  Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...