Как найти и заменить строку, увеличив ее числовую часть?

Мне пришлось отойти от сетевого менеджера до wicd год назад. Я решил дать сетевому менеджеру еще одну попытку обновления до 11.04, и пока все хорошо. Конкретная проблема, с которой я столкнулся, заставила меня двигаться, была решена.

Подробности о том, почему я переехал в wicd год назад, для чего это стоит:

Почему я переехал в WICD

1
задан 24 February 2015 в 15:04

2 ответа

Помимо превосходного ответа, предоставленного «muru», если вы хотите попробовать что-то другое, вот питонический путь:

#!/usr/bin/env python2
import re
with open('file_name.txt') as f:
    for line in f:
        final_list = ['ami' + str(int(value) + 1) for value in re.findall('\d+', line)]
        print ' '.join(final_list)
2
ответ дан 23 May 2018 в 22:58

Другое решение python через re.sub.

$ python3 -c 'import re, sys
with open(sys.argv[1]) as f:
    for line in f:
        print(re.sub(r"\d+", lambda x: str(int(x.group())+1), line), end="")' file
ami22 ami66
ami68 ami67
ami89 ami77 ami30
ami56 
ami55
ami33
1
ответ дан 23 May 2018 в 22:58

Другие вопросы по тегам:

Похожие вопросы: