<Предыдущая | Содержание: | Следующая>
Выражения в скобках и классы символов
Помимо сопоставления любого символа в данной позиции в нашем регулярном выражении, мы также можем сопоставить один символ из указанного набора символов, используя выражения в скобках. С помощью скобочных выражений мы можем указать набор символов (включая символы, которые в противном случае интерпретировались бы как метасимволы) для сопоставления. В этом примере используется набор из двух символов:
[я @ linuxbox ~] $ grep -h '[bg] zip' dirlist * .txt
bzip2 bzip2recover gzip
[я @ linuxbox ~] $ grep -h '[bg] zip' dirlist * .txt
bzip2 bzip2recover gzip
мы сопоставляем любую строку, содержащую строку «bzip» или «gzip».
Набор может содержать любое количество символов, и метасимволы теряют свое особое значение, если они помещены в квадратные скобки. Однако есть два случая, когда метасимволы используются в выражениях в квадратных скобках и имеют разное значение. Первый - это каретка (^), который используется для обозначения отрицания; второй - тире (-), который используется для обозначения диапазона символов.