Помогите с grep

Рейтинг: 1Ответов: 1Опубликовано: 05.12.2014

Здравствуйте, У меня есть дамп mysql. С помощью grep пытаюсь найти строки, отвечающие заданному регулярному выражению. Например grep --color "youtube.com/embed" dump.sql

Но весь дамп базы данных записан в одну строоку. А дамп очень большой, и он выводит практически все. Пробую egrep -o --color "youtube.com/embed" dump.sql, но он выводит только "youtube.com/embed". Как можно сделать чтобы выводилось youtube.com/embed и еще соседние символы. например "src="//www.youtube.com/embed/ZGrvJ3m4kS8" fra"? Заранее спасибо.

Ответы

▲ 1Принят

А места, где встречается youtube всегда имеют вид src="..."? Если так, то можно попробовать следующее: grep -Po 'src=.*?youtube.com/embed.*?"'.

Если только url интересует, то можно сделать так: grep -Po '\byoutube.com/embed/[a-zA-Z0-9]*' - это если строка после embed всегда буквено-числовая

Обновление

Так зачем выводить лишнее? Если строка после embed всегда буквено-числовая, то можно использовать следующее: egrep -o 'youtube.com/embed/[a-zA-Z0-9]+' - тоже выводит каждую ссылку на отдельной строке, но вариант с grep -P мне нравится больше