и так. что делает выражение ниже - вроде понятно...
Код: Выделить всё
find ./ -name '*.*' | grep -o -P '.*?/(?=moc).*?\.cpp'
ищет файлы в которых есть сначала "/moc" а потом ".cpp". (по сути в пути с файлом, но не суть)
А как найти то, где нет "/moc" но есть ".cpp"?
Код: Выделить всё
find ./ -name '*.*' | grep -o -P '.*?/(?!moc).*?\.cpp'
вываливает все. без какой-либо фильтрации. почему?
подскажите, как быть?
Заранее благодарен.
PS: А если объясните почему у меня не получается засунуть этот-же регекс в find
т.е. приведенные ниже вырабения выдают пустой результат
Код: Выделить всё
find ./ -regex ".*?/(?=moc).*?\.cpp"
find ./ -regex ".*?/(?\!moc).*?\.cpp"
- отдельное спасибо.
find никак не поддерживает перл-синтаксис?