Основы обрезки строк
Удаление ведущих и завершающих пробелов
Одна из самых базовых операций по обрезке строк в Bash - это удаление ведущих и завершающих пробельных символов из строки. Это можно сделать с помощью расширений параметров ${variable#pattern} и ${variable%pattern}.
## Example
variable=" Hello, World! "
trimmed_variable="${variable#"${variable%%[![:space:]]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}"
echo "$trimmed_variable" ## Output: "Hello, World!"
В приведенном выше примере мы сначала удаляем ведущие пробелы с помощью расширения ${variable#"${variable%%[![:space:]]*}"}, которое удаляет самую длинную префиксную часть переменной, соответствующую шаблону "${variable%%[![:space:]]*}" (самую длинную префиксную часть переменной, содержащую только пробельные символы).
Затем мы удаляем завершающие пробелы с помощью расширения ${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}, которое удаляет самую длинную суффиксную часть переменной, соответствующую шаблону "${trimmed_variable##*[![:space:]]}" (самую длинную суффиксную часть переменной, содержащую только пробельные символы).
Удаление определенных символов
В дополнение к удалению пробелов вы также можете удалить определенные символы из начала или конца строки, используя тот же синтаксис расширения параметров.
## Example
variable="---Hello, World!+++"
trimmed_variable="${variable#"${variable%%[-+]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[-+]}"}"
echo "$trimmed_variable" ## Output: "Hello, World!"
В этом примере мы удаляем ведущие и завершающие символы "-" и "+" из строки.
Обработка пустых строк
Важно отметить, что при работе с обрезкой строк необходимо также учитывать случай пустых строк. Bash предоставляет оператор :- для обработки такой ситуации.
## Example
variable=""
trimmed_variable="${variable#"${variable%%[![:space:]]*}"}"
trimmed_variable="${trimmed_variable%"${trimmed_variable##*[![:space:]]}"}"
echo "${trimmed_variable:-"The string is empty."}" ## Output: "The string is empty."
Используя оператор :-, мы можем указать значение по умолчанию, которое будет использовано, если обрезанная переменная представляет собой пустую строку.