Регулярное выражение (Начало и конец строки)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Prohorchuk
Сообщения: 9
ОС: Fedora/Windows XP

Регулярное выражение

Сообщение Prohorchuk »

Привет, ребята!
Работаю в дистрибутиве Fedora 10, не получается написать регулярное выражение. 1. Хочу, чтоб вывело все строки которые заканчиваются точкой
Пишу grep $. *
2. Что в реекспах обозначает символ []? Напишите пожалуйста пример использования....
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Регулярное выражение

Сообщение SLEDopit »

Prohorchuk писал(а):
13.01.2010 06:53
Пишу grep $. *
Во-первых, непонятно, почему вы ставите точку после знака конца строки, а во-вторых в данном случае при таком написании точка будет интерпретироваться как любой знак, кроме переноса строки. Т.е. под шаблон попадают все строки.
Вот так будет работать:

Код: Выделить всё

grep \\.$ *
grep [.]$ *

Prohorchuk писал(а):
13.01.2010 06:53
2. Что в реекспах обозначает символ []? Напишите пожалуйста пример использования....
Тут есть ответ на ваш вопрос.
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.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Регулярное выражение

Сообщение drBatty »

Prohorchuk писал(а):
13.01.2010 06:53
1. Хочу, чтоб вывело все строки которые заканчиваются точкой
Пишу 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|/
}
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: