Увеличить номер сборки в bash - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь увеличить номер сборки на 1 с помощью командной строки.

Вот содержимое моего тестового файла:

SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;

Результат, который я хочу получить, следующий: :

SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;

Я пытаюсь использовать что-то вроде:

sed -i -E "s/CURRENT_PROJECT_VERSION = (\d+);/CURRENT_PROJECT_VERSION = \1~;/" test.txt

У меня нет опыта в bash написании сценариев, и я не знаю, как я могу увеличить число на единицу , (Я использую MacOS, но команда sed почти такая же, как на Linux)

Ответы [ 2 ]

1 голос
/ 29 января 2020

С помощью .../e вы можете указать sed выполнить строку замены.

sed -i -E 's/(CURRENT_PROJECT_VERSION = )([0-9]+)/echo "\1$((\2+1))"/e' test.txt
1 голос
/ 28 января 2020

sed не выполняет арифметику c. awk, однако, делает. Одна возможность:

awk '/CURRENT_PROJECT_VERSION/ { $3=$3+1";"}; 1' test.txt > tmp && mv tmp test.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...