anonymous@RULINUX.NET~# Last login: 2024-11-05 12:30:54
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

как проще всего найти выражение

Например, хочется найти в тексте всё штуки вида <некое вырожение> и вывести только эти выражения, чем это лучше всего сделать? Начал читать мануал по sed, что-то не вьехал, может чем-то другим проще, али как?

anonymous(*) (2013-05-12 17:35:20)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: как проще всего найти выражение от anonymous 2013-05-12 17:35:20
avatar
Скрыть

Re:как проще всего найти выражение

пальцем покажы пример приведи, что ты хочешь.

Ax-Xa-Xa(*)(2013-05-12 17:43:04)
Отредактировано Ax-Xa-Xa по причине "не указана"
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: как проще всего найти выражение от anonymous 2013-05-12 17:35:20
avatar
Скрыть

Re:как проще всего найти выражение

Может быть через "grep -o"?

SystemV(*)(2013-05-12 17:53:19)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от Ax-Xa-Xa 2013-05-12 17:43:04Фильтры
avatar
  • матерные выражения
Скрыть

Re:как проще всего найти выражение

я же сказал

например:

хуй <пизда> джигруда <столлман>

будет выводить: пизда столлман

anonymous(*)(2013-05-12 17:53:48)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 17:53:19
avatar
Скрыть

Re:как проще всего найти выражение

тогда я не осилил тамошние регекспы, как это, примерно, написать?

anonymous(*)(2013-05-12 17:54:26)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 17:54:26Фильтры
avatar
  • матерные выражения
Скрыть

Re:как проще всего найти выражение

Так?

text
$ echo "хуй пизда джигруда столлман" | grep -o -E "(пизда|столлман)"
пизда
столлман
 

SystemV(*)(2013-05-12 18:00:55)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 17:53:48
avatar
Скрыть

Re:как проще всего найти выражение

Хмы, я думал что-то более мудрёное имелось в виду)))

Ax-Xa-Xa(*)(2013-05-12 18:06:16)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 18:00:55
avatar
Скрыть

Re:как проще всего найти выражение

Нет, я не знаю какие могут быть выражения в <>

anonymous(*)(2013-05-12 18:09:23)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 18:00:55
avatar
Скрыть

Re:как проще всего найти выражение

В корне неверное решение, коллега!
Уважаемый анонимус просил вывести вхождения в строчку, а не в столбик:

echo "aaaa bbb cccc ddd" | grep -o -E 'bbb|ddd' | tr "\n" " "

anonymous(*)(2013-05-12 18:12:04)

[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:09:23
avatar
Скрыть

Re:как проще всего найти выражение

Хм, тогда так:

grep -oE "<[^>]+>"

SystemV(*)(2013-05-12 18:13:32)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:12:04
avatar
Скрыть

Re:как проще всего найти выражение

блддджааад, вы упоролись к хуям!

Мне нужно найти те выражения, которые заключены в угловые скобки, например

anonymous(*)(2013-05-12 18:13:54)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 18:13:32
avatar
Скрыть

Re:как проще всего найти выражение

Спасибо :)

А как потом убрать угловые скобки от результата поудобнее?

anonymous(*)(2013-05-12 18:15:25)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:12:04
avatar
Скрыть

Re:как проще всего найти выражение

>В корне неверное решение, коллега!
Согласен, не обратил внимания на это.

SystemV(*)(2013-05-12 18:16:25)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:09:23
avatar
Скрыть

Re:как проще всего найти выражение

Т.е. ты просто хочешь выдрать все теги в одну строчку в порядке их поступления?

echo "aaaa <bbccb> cccc <ddccd>" | grep -o -E '<[^>]{1,}>' | tr "\n" " "

anonymous(*)(2013-05-12 18:17:05)

[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:15:25
avatar
Скрыть

Re:как проще всего найти выражение

>А как потом убрать угловые скобки от результата поудобнее?
Можно так:

grep ... | tr -d "<>"

SystemV(*)(2013-05-12 18:19:09)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 18:19:09
avatar
Скрыть

Re:как проще всего найти выражение

Ой, вот только если будет что-то вроде <сто<ллман>, то оно уберёт и < в середине. Так что, если символ < встречается в слове, лучше как-нибудь удалять первый и последний символ.

Тогда можно сделать что-то такое: grep ... | sed 's/^.\(.*\).$/\1/' (наверное есть решение и лучше, я просто не в курсе).

SystemV(*)(2013-05-12 18:26:48)
Отредактировано SystemV по причине движок жрёт слэши!
Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от SystemV 2013-05-12 18:26:48
avatar
Скрыть

Re:как проще всего найти выражение

Как раз хотел предложить резать первую и последнюю угловую скобку:

grep -o -E '<([^>]{1,})>' | sed -rn 's/^<([^>]{1,})>$/\1/p'

Кстати в перловских регеэкспах вроде можно ссылаться на предшествующий/последующий текст при матчинге, так что наверное можно выцепить нужные вхождения за один раз, без последующей фильтрации.

anonymous(*)(2013-05-12 18:41:30)

[#] [Добавить метку] [Редактировать] Ответ на: Re:как проще всего найти выражение от anonymous 2013-05-12 18:41:30
avatar
Скрыть

Re:как проще всего найти выражение

>Кстати в перловских регеэкспах вроде можно ссылаться на предшествующий/последующий текст при матчинге, так что наверное можно выцепить нужные вхождения за один раз, без последующей фильтрации.
В любом нормальном языке программирования в регэкспах есть capturing groups, и достаточно просто брать первый match из <([^>]+)>, будет результат, который внутри круглых скобок. Но в утилите grep такого нет.

SystemV(*)(2013-05-12 18:52:50)

Emacs-w3m/1.4.513 w3m/0.5.3
Этот тред читают 6 пользователей:
Анонимных: 6
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!