Есть текстовые файлы в которых следует найти строки содержащие слова:
abc(
qwe(
abc_a(
qwe_a(
Конечно можно сделать так
grep -R -E "(abc\(|abc_a\(|qwe\(|qwe_a\(" *
но нельзя ли это сократить? (чувствую что можно)
Думал что так:
(abc\(|qwe\()_a\(
но тогда он ищет
abc(__a(
grep поиск по регулярным выражениям
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 203
- ОС: Убунту
Re: grep поиск по регулярным выражениям
Если работает, не трогай!
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: grep поиск по регулярным выражениям
grep -RE "(abc|qwe)(|_a)\(" *
короче вряд ли выйдет с сохранением функциональности.
короче вряд ли выйдет с сохранением функциональности.
часть "abc(" ведь полностью совпадает с первой строкой из примера.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: grep поиск по регулярным выражениям
ИМХО более правильнее использовать (_a)? вместо (|_a)
хотя ваш вариант конечно тоже допустим.
-
- Сообщения: 100
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: grep поиск по регулярным выражениям
нормально. вторые скобки нужны лишь в sed-скрипте, который что-то заменяет:
Код: Выделить всё
s/(abc_|qwe_)?([0-9]*)/\1 --- \2/
или при поиске одинаковых последовательностей:
Код: Выделить всё
\<(\w)\>.*\<\1\>
найдутся строчки, в которых есть одинаковые слова.
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: grep поиск по регулярным выражениям
man grep:
Ы?
Код: Выделить всё
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file contains zero patterns, and therefore matches
nothing. (-f is specified by POSIX.)
Ы?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: grep поиск по регулярным выражениям
Portnov писал(а): ↑05.01.2011 18:03man grep:
Код: Выделить всё
-f FILE, --file=FILE Obtain patterns from FILE, one per line. The empty file contains zero patterns, and therefore matches nothing. (-f is specified by POSIX.)
Ы?
Ещё и -F к этому -- и вообще сказка)