Используйте разделитель Cut, чтобы извлечь начальную часть строки - PullRequest
0 голосов
/ 15 мая 2018

У меня есть переменная A, у которой есть значение, первая часть которого всегда DEV-UI. Различные возможные значения A могут быть: DEV-UI, DEV-UI2, DEV-UI*

Я хотел бы извлечь из него только DEV и сохранить его в другой переменной. Таким образом, другая переменная B всегда имеет значение DEV.

Как извлечь из A, DEV и сохранить в B?

Я ищу любой разделитель среза или любое выражение, которое можно использовать для достижения этой цели в моем сценарии оболочки.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Очевидным шагом, очевидно, является установка B="DEV", поскольку вы утверждаете, что это всегда DEV. Однако ниже я покажу, как извлечь его в качестве первого поля.

Это немного зависит от типа вашей оболочки, но если это какая-либо форма sh -совместимой оболочки, вы можете сделать:

$ B=${A%%-*}

Это объясняется на языке команд оболочки POSIX :

${parameter%%[word]} Удалить самый большой шаблон суффикса. Слово должно быть расширено, чтобы произвести образец. Расширение параметра должно затем привести к параметру с наибольшей частью суффикса, совпадающей с удаленным шаблоном.

$ A="hello-big-world"
$ echo ${A%-*}
hello-big
$ echo ${A%%-*}
hello

При использовании C Shell вам не повезло:

% set a = "hello-big-world"
% set b = `echo $a | cut -d- -f1`
% echo $b
hello
0 голосов
/ 15 мая 2018
B=$(echo "$A" | cut -d'-' -f1)

Разбивает строку на - и возвращает первую часть.

...