Как увеличить и найти / заменить число с помощью sed или perl - PullRequest
0 голосов
/ 14 октября 2019

У меня есть тег git с именем "a_tag-30", и я хочу найти последний тег и увеличить его на 1, используя выражение sed или perl, поэтому результатом будет "a_tag-31". Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Следующая команда git получает все теги, соответствующие шаблону "a_tag- *", отсортированные в порядке убывания с помощью клавиши "-taggerdate".

git tag --list 'a_tag-*' --sort=-taggerdate | head -1 | awk -F- '{print "a_tag-" $NF+1}'

Затем первая строка передается команде awk, где "-" используется в качестве разделителя полей. Следовательно, позиционный параметр $ NF (т. Е. NF означает число полей, и это предопределенная переменная в awk) содержит значение последнего поля.

Наконец, новое значение тега выводится путем увеличения $ NF на 1.

0 голосов
/ 14 октября 2019

Подобные вещи проще всего использовать в утилите bash. Например:

echo "a_tag-$(($(git tag --list 'a_tag-*' 
    | sed -e 's/^.*-\([0-9]*\)/\1/'  
    | sort -nr
    | head -1) + 1))" > output

Это запишет новый тег в output.

. Помимо префикса "a_tag", предполагается, что все ваши теги заканчиваются чертой, а затемномер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...