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


Программирование на языке сценариев командной оболочки - стр. 222


Выражение "[xyz]" -- соответствует одному из символов x, y или z.

Выражение "[c-n]" соответствует одному из символов в диапазоне от c до n, включительно.

Выражение "[B-Pk-y]" соответствует одному из символов в диапазоне от B до P или в диапазоне от k до y, включительно.

Выражение "[a-z0-9]" соответствует одному из символов латиницы в нижнем регистре или цифре.

Выражение "[^b-d]" соответствует любому символу, кроме символов из диапазона от b до d, включительно. В данном случае, метасимвол ^ означает отрицание.

Объединяя квадратные скобки в одну последовательность, можно задать шаблон искомого слова. Так, выражение "[Yy][Ee][Ss]" соответствует словам yes, Yes, YES, yEs и так далее. Выражение "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" определяет шаблон для поиска любого номера карточки социального страхования (для США).

  • Обратный слэш -- \ -- служит для экранирования специальных символов, это означает, что экранированные символы должны интерпретироваться буквально, т.е. как простые символы.

    Комбинация "\$" указывает на то, что символ "$" трактуется как обычный символ, а не как признак конца строки в регулярных выражениях. Аналогично, комбинация "\\" соответствует простому символу "\".

  • Экранированные "угловые скобки" -- \<...\> -- отмечают границы слова.

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

    Выражение "\<the\>" соответствует слову "the", и не соответствует словам "them", "there", "other" и т.п.

    bash$ cat textfile

    This is line 1, of which there is only one instance. This is the only instance of line 2. This is line 3, another line. This is line 4.

    bash$ grep 'the' textfile

    This is line 1, of which there is only one instance. This is the only instance of line 2. This is line 3, another line.

    bash$ grep '\<the\>' textfile




    - Начало -  - Назад -  - Вперед -