Вот моя проблема в упрощенном сценарии.Использование непотребительских совпадений в Linux найти regex
Создать некоторые тестовые файлы:
touch /tmp/test.xml
touch /tmp/excludeme.xml
touch /tmp/test.ini
touch /tmp/test.log
У меня есть найти выражение, которое возвращает мне все XML и INI-файлы:
[[email protected]] ~> find /tmp -name -prune -o -regex '.*\.\(xml\|ini\)'
/tmp/test.ini
/tmp/test.xml
/tmp/excludeme.xml
теперь я хочу способ изменения этого -regex исключить файл excludeme.xml из включенного в результаты.
Я думал, что это должно быть возможно, используя/комбинируя нерегулярное регулярное выражение (?=expr)
с отрицательным соответствием (?!expr)
. К сожалению, я не могу правильно получить формат команды, поэтому мои попытки не приводят к возврату матчей. Здесь был один из моих попыток (я пробовал много различных форм этого с различными побега!):
find /tmp -name -prune -o -regex '\(?=.*excludeme\.xml\).*\.\(xml\|ini\)'
Я не могу разбить команду на несколько шагов (например, трубопроводы через grep -v
) в качестве команды поиска принимается за вход в другие части нашего инструмента.
Это прекрасно работает для меня, спасибо! –