Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
 
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
1

Enhanced features в -regex утилиты “find”

29.09.2016, 12:44. Просмотров 388. Ответов 2

Здравствуйте!

Пример проблемы:
Bash
1
2
shopt extglob
extglob         on
: > 12; basename $(find -E . -regex '^(.*)(\d{2})' -print 2>/dev/null) не находит файл,
basename $(find -E . -regex '^(.*)([0-9]{2})' -print 2>/dev/null) находит
Кликните здесь для просмотра всего текста
(
-E option interpret regular expressions followed by -regex and -iregex pri-
maries as extended (modern) regular expressions rather than basic
regular expressions (BRE's). The re_format(7) manual page fully
describes both formats.
)


В то же время, для примера, echo -e '12\nabc\n456' | grep -E -e '^(\d{3})' успешно справляется с задачей, хотя, по-видимому использует тот же regcomp()

Вопрос: что я делаю не так, и как победить (где что подкрутить)?

Заранее благодарен за помощь!

P.S. OS X, маны: regcomp(3), re_format(7), find(1)

UPD:

gfind . -regextype 'egrep' -regex '^(.*)(\d{2})' -print 2>/dev/null так же не работает, как впрочем и с любыми другими regular expression type
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2016, 12:44
Ответы с готовыми решениями:

Аналог утилиты find
Здравствуйте! Только начала изучать unix и есть некоторые трудности... как реализовать на с или с++...

This kernel requires the following features not present on the cpu pae
This kernel requires the following features not present on the cpu pae. -> при установке вибивает...

Your graphics hardware does not support all features (CSM) needed to run this game
При запуске cs go вылетает такая ошибка Device info: Marked unsupported: 0 Supports...

Парсинг XML find(). Как заставить find() выбирать элементы только на первом уровне?
Пытаюсь распарсить XML-ответ от сервера. <reply> <sector> <users> <item>...

2
Модератор
Эксперт NIX
2650 / 1995 / 668
Регистрация: 02.03.2015
Сообщений: 6,409
30.09.2016, 00:18 2
Не знаю что там на OS X, но Линукс такого типа как egrep не имеет
Цитата Сообщение от man find
Код
-regextype type
  Changes the regular expression syntax understood by -regex and -iregex tests which occur later on the command
  line.   Currently-implemented  types are emacs (this is the default), posix-awk, posix-basic, posix-egrep and
  posix-extended.
И с grep -E \d не работает тоже.
0
2 / 2 / 1
Регистрация: 30.01.2016
Сообщений: 66
30.09.2016, 00:35  [ТС] 3
Не знаю что там на find, но gfind такой тип как egrep имеет
Сообщение от man gfind


Код
-regextype type
      valid types are ‘findutils-default’, ‘awk’, ‘egrep’, ‘ed’, ‘emacs’, ‘gnu-awk’, ‘grep’, ‘posix-awk’, ‘posix-basic’, ‘posix-egrep’, ‘posix-extended’, ‘posix-minimal-basic’, ‘sed’
И grep -E \d работает, а у вас заработает grep -P \d
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2016, 00:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему map.find не доработают для std::find
Добрый вечер, вопрос философский о разработчиках стандарта и последующих имплементациях...

VIA AC'97 Enhanced Audio Controller
у меня проблема с установкой реалтек 97 защитник виндовс мешает(( Добавлено через 41 секунду...

std::regex и boost::regex
Что-то я не пойму что реализация их различна ? #include <iostream> #include <string> ...

Enhanced Virus Protection мешает разгону.
И так есть матерь Системная плата:Gigabyte GA-M61PME-S2 (2 PCI, 1 PCI-E x1, 1 PCI-E x16, 2 DDR2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.