LINUX.ORG.RU

Оставить только текст после символа grep

 


0

1

Привет. Нашёл тему

Обрезать строку до и после символа. (комментарий)

Там оставляется текст в середине строки, а как оставить только текст после символа «|»?

Я нашёл как оставить до символа:

echo «dfsadfa|32134» | grep -o ‘^[^|]*’

но не получилось адаптировать зеркально.

Подскажите пожалуйста как?

Ответ на: комментарий от teod0r

grep -oP ‘(?<=|).*’

это ты \ забыл?

Нет, не забыл. Это так преобразуется сообщение на ЛОРе, что бэкслэш теряется. У меня разметка Markdown стоит.

 % echo 'aoeu|1234|qwer' | grep -oP '(?<=\|).*'
usage: grep [-abcDEFGHhIiLlmnOoPqRSsUVvwxz] [-A num] [-B num] [-C num]
	[-e pattern] [-f file] [--binary-files=value] [--color=when]
	[--context=num] [--directories=action] [--label] [--line-buffered]
	[--null] [pattern] [file ...]
 % 
mord0d ★★★★★
()
Ответ на: комментарий от mord0d

В фряхе юзается огрызок. Нужен GNU-grep:

echo 'aoeu|1234|qwer' | ggrep -oP '(?<=\|).*'
1234|qwer
pkg info | grep grep              
gnugrep-3.10                   GNU version of popular pattern matching utility
Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 1)
Ответ на: комментарий от iron

Так вродь POSIX регулярки поддерживаются всеми одинаково.

Проверь в GNUтых утилитках мои примеры отсюда, если не лень?

все работают, кроме sed ‘s/([^|])|(.)$/\2/’

“The sed utility is expected to be a superset of the IEEE Std 1003.2 (“POSIX.2”) specification.”
© sed(1), FreeBSD

Это GNU sed не следует POSIX, или регулярка ей не соответствует? ^_~

Только вот писать на них издивательство.

RE/ERE в качестве ночных кошмаров? Соболезную. (%

mord0d ★★★★★
()