Чтение онлайн

на главную - закладки

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

b=`expr substr $a 2 6`

echo "Подстрока в строке \"$a\", начиная с позиции 2,\

и длиной в 6 символов: \"$b\"."

# При выполнении поиска по шаблону, по-умолчанию поиск

#+ начинается с ***начала*** строки.

#

# Использование регулярных выражений

b=`expr match "$a" '[0-9]*'` # Подсчет количества цифр.

echo

Количество цифр с начала строки \"$a\" : $b.

b=`expr match "$a" '\([0-9]*\)'` # Обратите внимание на экранирование круглых скобок

# == ==

echo "Цифры, стоящие в начале строки \"$a\" : \"$b\"."

echo

exit 0

Вместо оператора match можно использовать оператор :. Например, команда b=`expr $a : [0-9]*` является точным эквивалентом для b=`expr match $a [0-9]*` в примере, рассмотренном выше.

#!/bin/bash

echo

echo "Операции над строками с использованием конструкции \"expr \$string : \" "

echo "========================================================================"

echo

a=1234zipper5FLIPPER43231

echo "Строка, над которой выполняются операции: \"`expr "$a" : '\(.*\)'`\"."

# Экранирование круглых скобок в шаблоне == ==

# Если скобки не экранировать...

#+ то 'expr' преобразует строковый операнд в целое число.

echo "Длина строки \"$a\" равна `expr "$a" : '.*'`." # Длина строки

echo "Количество цифр с начала строки \"$a\" равно `expr "$a" : '[0-9]*'`."

# ------------------------------------------------------------------------- #

echo

echo "Цифры, стоящие в начале строки \"$a\" : `expr "$a" : '\([0-9]*\)'`."

# == ==

echo "Первые 7 символов в строке \"$a\" : `expr "$a" : '\(.......\)'`."

# ====== == ==

# Опять же, необходимо экранировать круглые скобки в шаблоне.

#

echo "Последние 7 символов в строке \"$a\" : `expr "$a" : '.*\(.......\)'`."

# ========= оператор конца строки ^^

# (фактически

означает переход через любое количество символов, пока

#+ не будет найдена требуемая подстрока)

echo

exit 0

Этот пример демонстрирует необходимость экранирования оператора группировки -- \( ... \) в регулярных выражениях, при поиске по шаблону командой expr.

Perl, sed и awk имеют в своем распоряжении более мощный аппарат анализа строк. Коротенький скрипт на sed или awk, внутри сценария (см. Section 33.2) -- значительно более привлекательная альтернатива использованию expr при анализе строк.

Дополнительные примеры, по обработке строк, вы найдете в Section 9.2.

12.3. Команды для работы с датой и временем

Время/дата и измерение интервалов времени

date

Команда date без параметров выводит дату и время на стандартное устройство вывода stdout. Она становится гораздо интереснее при использовании дополнительных ключей форматирования вывода.

Пример 12-7. Команда date

#!/bin/bash

# Примеры использования команды 'date'

echo "Количество дней, прошедших с начала года: `date +%j`."

# Символ '+' обязателен при использовании форматирующего аргумента

# %j, возвращающего количество дней, прошедших с начала года.

echo "Количество секунд, прошедших с 01/01/1970 : `date +%s`."

# %s количество секунд, прошедших с начала "эпохи UNIX",

#+ но насколько этот ключ полезен?

prefix=temp

suffix=`eval date +%s` # Ключ "+%s" характерен для GNU-версии 'date'.

filename=$prefix.$suffix

echo $filename

# Прекрасный способ получения "уникального" имени для временного файла,

#+ даже лучше, чем с использованием $$.

# Дополнительную информацию вы найдете в 'man date'.

exit 0

Ключ – u дает UTC время (Universal Coordinated Time -- время по Гринвичу).

bash$ date

Fri Mar 29 21:07:39 MST 2002

bash$ date -u

Sat Mar 30 04:07:42 UTC 2002

Поделиться:
Популярные книги

Часовая башня

Щерба Наталья Васильевна
3. Часодеи
Фантастика:
фэнтези
9.43
рейтинг книги
Часовая башня

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Случайная свадьба (+ Бонус)

Тоцка Тала
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Случайная свадьба (+ Бонус)

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Наследник 2

Шимохин Дмитрий
2. Старицкий
Фантастика:
попаданцы
альтернативная история
фэнтези
5.75
рейтинг книги
Наследник 2

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник