голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

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

Допустим у вас есть переменная str. В этой переменной некий текст в виде строки. Как вывести несколько символов из строки? Выводить текст при помощи цикла - это довольно долгое занятие. Поможет простая конструкция {?}. Вы можете вывести часть строки, передав параметр ${str:?}. Вместо ? поставьте индекс позиции символа. ${str:начало:конец} тут вы можете вывести значения согласно выбранному интервалу. Посмотрите на пример.


#!/bin/bash
str=abcABC123ABCabc
# 0123456789.....# Индексация начинается с 0.
echo ${str:0} # abcABC123ABCabc
echo ${str:1} # bcABC123ABCabc
echo ${str:7} # 23ABCabc
echo ${str:7:3} # 23A # Извлекает 3 символа.
# Возможна ли индексация с "правой" стороны строки?

echo ${str:-4} # abcABC123ABCabc
# По-умолчанию выводится полная строка.
# Однако . . .echo ${str:(-4)} # Cabc

echo ${str: -4} # Cabc
# Теперь выводится правильно.
# Круглые скобки или дополнительный пробел "экранируют" параметр позиции.

Как определить позицию индекс строки? Посмотрите на пример. expr - универсальный обработчик выражений: вычисляет заданное выражение (аргументы должны отделяться пробелами). Выражения могут быть логическими, арифметическими или строковыми.


#!/bin/bash
str=abcABC123ABCabc

echo `expr index "$str" C12` 
#вывод: 6 
# позиция символа C.

echo `expr index "$str" 1c` 
#вывод: 3
# символ 'c' (в #3 позиции) совпал раньше, чем '1'.

#количество символов в строке
echo ${#str} # 15
echo `expr length $str` # 15
echo `expr "$str" : '.*'` # 15

Покажу поиск строк при помощи регулярных выражений. В примере все вышеприведенные операции дают один и тот же результат.


#!/bin/bash
str=abcABC123ABCabc

echo `expr match "$str" '\(.[b-c]*[A-Z]..[0-9]\)'` # abcABC1
echo `expr "$str" : '\(.[b-c]*[A-Z]..[0-9]\)'` # abcABC1
echo `expr "$str" : '\(.......\)'` # abcABC1
просмотры: 4189, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-05-29 13:45:09
проголосовать:

Комментарии:






поиск
реклама
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.