Инкрементировать номер сборки в bash

Инкрементировать номер сборки в bash

28.01.2020 05:05:00 Просмотров 4 Источник

Я пытаюсь увеличить номер сборки на 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)

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59950549/increment-build-number-in-bash#comment106021318_59950549
Это формат моего входного файла, он может появляться несколько раз.

Ответы - Инкрементировать номер сборки в bash / Increment build number in bash

chepner

28.01.2020 05:21:51

sedарифметикой не занимается. awk, однако, знает. Одна возможность:

awk '/CURRENT_PROJECT_VERSION/ { $3=$3+1";"}; 1' test.txt > tmp && mv tmp test.txt
Walter A

29.01.2020 01:12:47

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

sed -i -E 's/(CURRENT_PROJECT_VERSION = )([0-9]+)/echo "\1$((\2+1))"/e' test.txt
Закрыть X