Инструменты пользователя

Инструменты сайта

Загрузка не удалась. Возможно, проблемы с правами доступа?

linux:bash-string

Работа со строками в bash

  • ${#string} - Длина строки

Извлечение подстроки

  • ${string:position} - с position до конца
  • ${string:position:length} - с position длиной length символов
  • ${string: -length} - последние length символов

Удаление части строки

  • ${string#substring} - до первого с начала
  • ${string##substring} - до последнего с начала
  • ${string%substring} - до первого с конца
  • ${string%%substring} - до последнего с конца

Замена подстроки

  • ${string/substring/replacement} - первое вхождение
  • ${string//substring/replacement} - все вхождения
  • ${var/#Pattern/Replacement} - Если в переменной var найдено совпадение с Pattern, причем совпадающая подстрока расположена в начале строки (префикс), то оно заменяется на Replacement. Поиск ведется с начала строки
  • ${var/%Pattern/Replacement} - Если в переменной var найдено совпадение с Pattern, причем совпадающая подстрока расположена в конце строки (суффикс), то оно заменяется на Replacement. Поиск ведется с конца строки


Внимание!
При работе со строками используются ФИГУРНЫЕ { }, а не обычные ( ) скобки.
Использование обычных скобок приведет к ошибке.


как вычленить в скрипте имя файла и расширение?

$ fname="a.tar.gz"
$ echo ${fname##*.}
gz
$ echo ${fname%.*}
a.tar

Отсюда: http://www.linux.org.ru/forum/general/2639961 (в ответах)

linux/bash-string.txt · Последние изменения: 2015/04/29 16:01 (внешнее изменение)