Как найти / заменить и увеличить совпадающее число с помощью sed / awk?
Прямо к делу, яМне интересно, как использовать grep / find / sed / awk для сопоставления с определенной строкой (которая заканчивается числом) и увеличить это число на 1. Ближайшее I 'Мы пришли, чтобы объединить 1 до конца (что работает достаточно хорошо), потому что главное - просто изменить значение. Вот'что ям в настоящее время занимаюсь:
find . -type f | xargs sed -i 's/\(\?cache_version\=[0-9]\+\)/\11/g'
Так как я не могЯ не могу понять, как увеличить число, я захватил все это и просто добавил «1», Раньше у меня было что-то вроде этого:
find . -type f | xargs sed -i 's/\?cache_version\=\([0-9]\+\)/?cache_version=\11/g'
По крайней мере, я понимаю, как захватить то, что мне нужно.
Вместо того, чтобы объяснять, для чего это яЯ просто объясню, что я хочу сделать. Он должен найти текст в любом файле, рекурсивно, основываясь на текущем каталоге (isn 'Не важно, это может быть любой каталог, поэтому ябуду настраивать позже), что соответствует? Cache_version =» с номером. Затем он увеличит это число и заменит его в файле.
В настоящее время материал, который у меня есть выше, работает, этоПросто я могуt увеличить найденное число в конце. Было бы лучше иметь возможность увеличивать вместо добавления "1" так что будущие ценности не будутт быть "11 ","111 ","1111 ","11111"и так далее.
Вы прошли десятки статей / объяснений, и достаточно часто, предложение использоватьawk
, но я не могу за свою жизнь смешать их. Наиболее близким я пришел к использованиюawk
, который нена самом деле ничего не заменить, это: я
grep -Pro '(?