Извлечь подстроку из 6 символов, используя GNU Make - PullRequest
0 голосов
/ 29 августа 2018

У меня есть строка хита git, извлеченная с использованием:

git describe --always --abbrev=6

т.е. Я хочу получить 6 символов. Проблема в том, что git, кажется, дает мне 7 символов, если тег из 6 символов не уникален. Поэтому я хотел бы извлечь первые 6 символов, используя стандартные команды make / bash, такие как sed. make не поддерживает подстроки.

В настоящее время мой скрипт make содержит следующее:

foo:=$(lastword $(subst M,,$(subst :, ,$(shell git describe --always --abbrev=6))))

Что может привести к foo = e94181c, но мне нравится, что это просто e94181 для размещения в 24-битной области памяти.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я бы наверное сделал это:

foo := $(shell git describe --always --abbrev=6 | cut -c 1-6)
0 голосов
/ 29 августа 2018

Это выполнимо только с функциями GNU make, но простейшим, вероятно, является использование оболочки, используемой make. Если это bash, вы можете, например, использовать:

foo := $(shell a=$$(git describe --always --abbrev=6); echo $${a:0:6})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...