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

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

Жанры

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

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

Шрифт:

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

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

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

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

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

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

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Законник Российской Империи. Том 3

Ткачев Андрей Юрьевич
3. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
5.00
рейтинг книги
Законник Российской Империи. Том 3

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

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Младший сын князя. Том 4

Ткачев Андрей Юрьевич
4. Аналитик
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Младший сын князя. Том 4