Переменные bash
Версия от 08:49, 16 марта 2022; Дым (обсуждение | вклад)
Всякий раз вспоминая, как можно выудить часть bash-переменной без разбиения её вызовом команд, гуглил что-то вроде этой статьи. Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось.
Оператор | Описание | Пример | Результат | |
---|---|---|---|---|
Длина | ${#переменная} |
Число символов в переменной | "${#url}"
|
https://guide.bash.academy/variables.html
↓ |
Удаление | ${переменная:начало[:длина]} ${переменная: -конец[:длина]} |
Удаление всех символов кроме части заданной длины от символа:
|
"${url: -33:5}}"
|
↓ |
${переменная#шаблон} |
Удаление кратчайшего совпадения с шаблоном в начале строки | "${url#*/}"
|
↓ | |
${переменная##шаблон} |
Удаление длиннейшего совпадения с шаблоном в начале строки | "${url##*/}"
|
↓ | |
${переменная%шаблон} |
Удаление кратчайшего совпадения с шаблоном в конце строки | "${url%/*}"
|
https://guide.bash.academy | |
${переменная%%шаблон} |
Удаление длиннейшего совпадения с шаблоном в конце строки | "${url%%/*}"
|
https: ↓ | |
Замена | ${переменная/шаблон/заменитель} |
Замена первого совпадения с шаблоном | "${url/./-}"
|
https://guide.bash.academy/variables.html
↓ |
${переменная//шаблон/заменитель} |
Замена каждого совпадения с шаблоном | "${url//./-}"
|
https://guide.bash.academy/variables.html
↓ | |
${переменная/#шаблон/заменитель} |
Замена шаблона в начале строки | "${url/#*:/ftp:}"
|
https://guide.bash.academy/variables.html
↓ | |
${переменная/%шаблон/заменитель} |
Замена шаблона в конце строки | "${url/%.html/.jpg}"
|
https://guide.bash.academy/variables.html | |
${переменная[^|^^|,|,,][шаблон]} |
Замена регистра для первого или всех символов из шаблона (для вообще всех шаблон не нужен) | "${url^^[ht]}"
|
https://guide.bash.academy/variables.html
↓ |