Обработка строк в bash, Linux

Примеры решения часто используемых задач при работе со строками в bash.

Получить подстроку по шаблону
echo `expr "input string" : '.*\(string\)'`
Результат: string (поиск начинается с конца строки)
Выдернуть блок строк из файла
awk '/от строки/,/до строки/' /путь/к/файлу.txt
Фильтрация и сплит строк
awk -F"РАЗДЕЛИТЕЛЬ" '/РЕГУЛЯРКА ФИЛЬТРАЦИИ СТРОК/ { print $2 }' /путь/к/файлу.txt
Сравнение по шаблону и обращение к найденным подстрокам
input="input string"
if [[ $input =~ ^in.*(str)(ing)$ ]]; then
  echo All matches: $BASH_REMATCH
  echo "Parts match: '${BASH_REMATCH[1]}' & '${BASH_REMATCH[2]}'"
fi
Удалить строки по фильтру
sed '/t.tle/d' /путь/к/файлу.txt
Замена подстроки по шаблону
sed s/найти/строка замены/ /home/stas/text.txt
echo "текст для поиска" | sed s/найти/строка замены/
sed 's/\/usr\/local\/bin/\/common\/bin/'
Можно убрать «частокол» используя другой разделитель:

echo "/usr/local/bin" | sed 's~/usr/local/bin~/common/bin~'

Обернуть все вхождения
echo "Обернуть 2 числа в 1 строке" | sed 's@\([0-9]\+\)@(&)@g' # модификатор "g"
Результат: Обернуть (2) числа в (1) строке
echo "Обернуть все слова" | sed 's@\([^ ]\+\)@(&)@g'
Результат: (Обернуть) (все) (слова)
Заменить указанную позицию
echo "Заменить указанную позицию" | sed 's@\(а\)@[\1]@2' # числовой модификатор "2" (1 - 512)
Результат: Заменить ук[а]занную позицию
echo "Заменить с указанной позиции" | sed 's@\(а\)@[\1]@2g' # числовой с глобальным "2g"
Результат: Заменить с ук[а]з[а]нной позиции
Удалить повторы
echo "Удалить ПОВТОРЫ ПОВТОРЫ из текста" | sed 's@\(повторы\) \1 @\1 @i'
Результат: Удалить повторы из текста
Смена регистра
echo "Сделать всем uppercase" | sed 's@\([^ ]*\)@\U&@g'
Результат: СДЕЛАТЬ ВСЕМ UPPERCASE
echo "заменить регистр 1го символа 2 слова" | sed 's@[^ ]*@\u&@2'
Результат: заменить Регистр 1го символа 2 слова
echo "TO LOWERCASE" | sed 's@[^ ]*@\L&@g'
Результат:  to lowercase
echo "TO LOWERCASE" | sed 's@[^ ]*@\l&@g2'
Результат: TO lOWERCASE
Проверить наличие подстроки
if [[ "Text string" =~ string ]]; then
  echo "${BASH_REMATCH[0]}" # string
fi