Привет, ребята!
Работаю в дистрибутиве Fedora 10, не получается написать регулярное выражение. 1. Хочу, чтоб вывело все строки которые заканчиваются точкой
Пишу grep $. *
2. Что в реекспах обозначает символ []? Напишите пожалуйста пример использования....
Регулярное выражение (Начало и конец строки)
Модераторы: /dev/random, Модераторы разделов
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Регулярное выражение
Во-первых, непонятно, почему вы ставите точку после знака конца строки, а во-вторых в данном случае при таком написании точка будет интерпретироваться как любой знак, кроме переноса строки. Т.е. под шаблон попадают все строки.
Вот так будет работать:
Код: Выделить всё
grep \\.$ *
grep [.]$ *
Тут есть ответ на ваш вопрос.Prohorchuk писал(а): ↑13.01.2010 06:532. Что в реекспах обозначает символ []? Напишите пожалуйста пример использования....
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Регулярное выражение
Prohorchuk писал(а): ↑13.01.2010 06:531. Хочу, чтоб вывело все строки которые заканчиваются точкой
Пишу grep $. *
2. Что в реекспах обозначает символ []? Напишите пожалуйста пример использования....
1) точку надо экранировать. неэкранированная точка означает "любой символ"
а регулярное выражение нужно заключать в кавычки.
2)символьный класс.
Код: Выделить всё
#!/bin/sed -rf
s/charset=UTF-8/charset=KOI8-R/
/href="[^"]*%D[01]%[89A-F][0-9A-F][^"]*"/ {
s//\n&\n/
h
s/.*\n([^\n]+)\n.*/\1/
s/%D([01])%([89A-F][0-9A-F])/\\xD\1\\x\2/g
s/.*/echo -e \x27&\x27/e
s|^href="/wiki/|href="|
G
s/(.*)\n(.*)\n(.*)\n(.*)/\2\1\4|/
}