Переменные bash: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 22: Строка 22:
${переменная: -конец[:длина]}
${переменная: -конец[:длина]}
</pre>
</pre>
|<code>"${url:<span style="background-color:yellow"> -33</span>:<span style="background-color:yellow">5</span>}}"</code>
|<code>"${url:<span style="background-color:yellow"> -22</span>:<span style="background-color:yellow">8</span>}}"</code>
|style="text-align:center"|<s><span style="background-color:yellow">https://</span></s>www<s><span style="background-color:yellow">.altlinux.ru/index.html</span></s>
|style="text-align:center"|<s><span style="background-color:yellow">https://www.</span></s>altlinux<s><span style="background-color:yellow">.ru/index.html</span></s>
↓<br/>
↓<br/>
www
altlinux
|-
|-
|…'''кратчайшего''' совпадения с шаблоном '''в начале''' строки
|…'''кратчайшего''' совпадения с шаблоном '''в начале''' строки

Версия от 00:37, 19 марта 2022

Всякий раз вспоминая, как можно выудить часть bash-переменной без разбиения её вызовом команд, гуглил что-то вроде этой статьи. Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось.

Манипуляции с переменными на примере url='https://www.altlinux.ru/index.html'.
Действие Оператор Пример Результат
Счёт… …числа символов в переменной
${#переменная}
"${#url}" https://www.altlinux.ru/index.html


34

Удаление… всех символов кроме части (не обязательно заданной длины) от символа:
  • <начало> или
  • < -конец> (пробел обязателен)
${переменная:начало[:длина]}
${переменная: -конец[:длина]}
"${url: -22:8}}" https://www.altlinux.ru/index.html


altlinux

кратчайшего совпадения с шаблоном в начале строки
${переменная#шаблон}
"${url#*/}" https://www.altlinux.ru/index.html


/www.altlinux.ru/index.html

длиннейшего совпадения с шаблоном в начале строки
${переменная##шаблон}
"${url##*/}" https://www.altlinux.ru/index.html


index.html

кратчайшего совпадения с шаблоном в конце строки
${переменная%шаблон}
"${url%/*}" https://www.altlinux.ru/index.html


https://www.altlinux.ru

длиннейшего совпадения с шаблоном в конце строки
${переменная%%шаблон}
"${url%%/*}" https://www.altlinux.ru/index.html


https:

Замена… первого совпадения с шаблоном
${переменная/шаблон/заменитель}
"${url/./-}" https://www.altlinux.ru/index.html


https://www-altlinux.ru/index.html

каждого совпадения с шаблоном
${переменная//шаблон/заменитель}
"${url//./-}" https://www.altlinux.ru/index.html


https://www-altlinux-ru/index-html

…шаблона в начале строки
${переменная/#шаблон/заменитель}
"${url/#*:/ftp:}" https://www.altlinux.ru/index.html


ftp://www.altlinux.ru/index.html

…шаблона в конце строки
${переменная/%шаблон/заменитель}
"${url/%.html/.jpg}" https://www.altlinux.ru/index.html


https://www.altlinux.ru/index.jpg

…регистра:
  • только для первого символа
  • либо для всех символов (из шаблона или вообще)
${переменная[^|,][^^|,,[шаблон]]}
"${url^^[ht]}" https://www.altlinux.ru/index.html


HTTps://www.altlinux.ru/index.HTml