Используя 'grep-e' и более усовершенствованные регулярные выражения

Я пытаюсь использовать следующее регулярное выражение в grep (поиски смешанного случая файлы PNG).

[A-Z]+[\w.]*\.[pPnNgG]{3}[\\"')]*.*$

Когда я ввожу команду, моя оболочка отображает a > поиск более входа.

Я могу использовать grep для некоторых основных регулярных выражений, но я вполне никогда не получал дескриптор использования его с более усовершенствованными регулярными выражениями.

FWIW, это находится в Cygwin в Windows 7.

0
задан 06.04.2012, 17:25

1 ответ

Вы не вышли " символ. Двойная обратная косая черта прежде будет заменена единственной обратной косой чертой и " оставлен не оставленным. Или удалите одну обратную косую черту или добавьте ту.

Попробуйте это регулярное выражение:

grep -i '^[0-9a-z _]\+\.png\([^0-9a-z]+\|$\)' file | grep -v '^[0-9A-Za-z _]\+\.\(png\|PNG\)\([^0-9A-Za-z]\|$\)'

Это будет соответствовать всем строкам, содержащим с начала строки:

  • по крайней мере, на символов 0-9 (диапазон 0, 1, ..., 9 символы), a-z ' ' (пространство), '_'
  • точка (должен быть оставлен с обратной косой чертой, иначе это будет означать 'любой отдельный символ'),
  • 'png' (или 'Png', и т.д. потому что -i добавляется),
  • и не сопровождаемый любым из 0-9 и a-z символы (или A-Z потому что -i добавляется).

-i - отключит чувствительность к регистру

2
ответ дан 24.11.2019, 06:49

Теги

Похожие вопросы