LINUX.ORG.RU

Вывод слова регулярным выражением


0

1

Как вывести с помощью регулярного выражения слово (поле), а не всю строку. Например, последние слова каждой строки, или третье слово каждой строки. Знаю что можно с помощью $(номер слова) вывести, но мне нужно именно через регулярку.

Чтобы вывести что-то нужное, надо сначала удалить все не нужное.

Или grep -o

sdio ★★★★★ ()
Последнее исправление: sdio (всего исправлений: 2)

Вы лучше объясните получше, что вам нужно. Регулярные выражения сами по себе ничего не выводят.

третье слово каждой строки

Например, sed -r 's/(\w* ){2}(\w*).*/\2/'.
С допущением что слова разделяются одним пробелом.

мне нужно именно через регулярку

В этой фразе маловато смысла.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

Да, именно так я и хотел вывести, но есть ли русский мануал по sed нормальный? Я просто смотрю в поиске, там нет объяснений ни -r, ни \2. Вставляю вместо \w [A-Z], вообще ничего не выводит.

И еще один вопрос, можно ли в одном регулярном выражении скомбинировать, например вывести последнее слово в строках, в которых больше одного слова,а те строки в которых 1 слово вообще не выводить.

krolosh ()
Ответ на: комментарий от krolosh

Я просто смотрю в поиске, там нет объяснений ни -r, ни \2

В man sed есть и то и другое.

И еще один вопрос, можно ли в одном регулярном выражении скомбинировать

Можно. Но обычно проще поставить конвейром несколько выражений.

Deleted ()
Ответ на: комментарий от Deleted

хорошо, а с помощью awk можно вывести определенное слово? Как-нибудь выделить слово, чтобы потом его вывести. Я вывел через $<номер слова>, а преподаватель говорит, что надо вытащить слово через регулярное выражение, возможно ли это?

krolosh ()
Ответ на: комментарий от krolosh

Я вывел через $<номер слова>

Это правильный способ вывести слово с помощью awk.

а преподаватель говорит, что надо вытащить слово через регулярное выражение

Ну не повезло, считай. Он ещё предложит писать на QT для Gnome.

Deleted ()
Ответ на: комментарий от krolosh

Ну дык дай преподу лекало, пусть он сначала покажет как через него вытащить кривую без ручки и карандашей. Регексп - шаблон, и хоть я в них ничего не понимаю, однако знаю, что шаблон не предназначен для вывода, если в него не впаяли грифель. Нужен он исключительно для поиска совпадений. А как ты выведешь совпавшие с шаблоном данные - дело твое.

minakov ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.