Если вы используете только базовый awk, вы можете разбить найденное dn
значение переменной на части, разделенные строкой ",ou="
(, предполагая, что ou=
не является первым ), затем либо ищите число (, либо берите второй элемент разделения, если вы знаете, что это всегда это поле):
n = split(dn,x,",ou=")
for(i=1;i<=n;i++)if(x[i]+0==x[i])v = x[i]
# or just do: v = x[2]
Для вашего примера ввода вы должны получить в массиве x
по индексам 1, 2 и 3 значения:
ObjectName=Value
12
Users,dc=example,dc=com
Мы проверяем число, добавляя 0
к строке. awk преобразует строку в число (0, если это не число ). Если результат совпадает с исходной строкой, у нас есть простое число.
В качестве альтернативы, если у вас есть gnu awk, вы можете использовать gensub
для сопоставления с шаблоном и захватить с помощью ()
числовую часть, заменив ею все значение dn
:
v = gensub(".*,ou=([0-9]{1,2}),.*","\\1",1,dn)
Лучше всего будет, если вы настроите свой терминал на зеленый передний план и черный фон и не будете менять подсказку на зеленый цвет переднего плана. Я не знаю цветовой код зеленого лайма, поэтому использовал зеленый.
# terminal with green foreground, black background
# no need to set green foreground/background color
export PS1="\e[1;37m[\u@\W]\$ \e[0m"
# terminal with white foreground, black background
# or black foreground, white background
export PS1="\e[1;37;40m[\u@\W]\$\e[0;32m "
Используемые коды:
\e[1m
полужирный \e[32m
зеленый передний план \e[37m
белый передний план \e[40m
черный фон \e[0m
конец последовательности Вы также можете попробовать \e[92m
светло-зеленый...