Строки


Длина строки

${#string}
expr length $string
expr "$string" : '.*'

Длина подстроки в строке

expr match "$string" '$regsubstring'
expr "$string" : '$regsubstring'

Разбор строк

# Номер позиции первого совпадения
expr index $string $substring

# Извлекает подстроку из $string, начиная с позиции $position
${string:position}

# Извлекает $length символов из $string, начиная с позиции $position
${string:position:length}
expr substr $string $position $length

# Находит и извлекает первое совпадение $substring в $string
expr match "$string" '($regsubstring)'
expr "$string" : '($substring)

# Находит и извлекает первое совпадение $substring в $string c конца
expr match "$string" '.*($substring)'
expr "$string" : '.*($substring)'

# Удаление самой короткой из найденых подстроки $substring в строке $string
${string#regsubstring}

# Удаление самой длинной из найденых подстроки $substring в строке $string.
# Поиск с конца
${string##regsubstring}

# Удаление самой короткой из найденых подстроки $substring в строке $string.
${string%regsubstring}

# Удаление самой длинной из найденых подстроки $substring в строке $string.
# Поиск с конца строки
${string%%regsubstring}

# Замещает первое вхождение $substring строкой $replacement
${string/regsubstring/replacement}

# Замещает все вхождения $substring строкой $replacement
${string//regsubstring/replacement}

# Подстановка строки $replacement вместо $substring,
# если строка $string начинается найденым соответствием.
${string/#regsubstring/replacement}

# Подстановка строки $replacement вместо $substring,
# если строка $string заканчивается найденым соответствием.
${string/%regsubstring/replacement}

# Поиск по шаблону всех, ранее объявленных переменных,
# имена которых начинаются с varprefix
${!varprefix*}, ${!varprefix@}