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


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

16.05.2017 04:38:52 Просмотров 66 Источник

Допустим, у меня есть линия, которая выглядит так:

Hello my first name is =Bart and my second is =Homer

Как это сделать, если я хочу получить все после первого =или:с помощью sed?

В этом примере я хотел бы получить результат

Bart and my second is =Homer

Я использую sed 's/.*[=:]//'прямо сейчас, но я получаю Homerв результате (все после последнего =или :) и я хотел бы получить все после первого, а не последнего =или :

У вопроса есть решение - Посмотреть?

Ответы - используя sed, удалите все до первого появления персонажа / using sed, remove everything before the first occurence of a character

Является ответом!
Mad Physicist

16.05.2017 04:41:47

Обычно кванторы в sedявляются жадными, поэтому вы всегда будете соответствовать последнему =. Что определяет первое =, так это то, что все символы перед ним не =, так что:

sed 's/^[^=]*=//'

Ваш вопрос подразумевает, что либо :или =являются допустимыми маркерами, и в этом случае

sed 's/^[^=:]*[=:]//'
Помочь в развитии проекта:
Закрыть X