используя sed, удалите все до первого появления персонажа
Допустим, у меня есть линия, которая выглядит так:
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
Является ответом!

16.05.2017 04:41:47
Обычно кванторы в sed
являются жадными, поэтому вы всегда будете соответствовать последнему =
. Что определяет первое =
, так это то, что все символы перед ним не =
, так что:
sed 's/^[^=]*=//'
Ваш вопрос подразумевает, что либо :
или =
являются допустимыми маркерами, и в этом случае
sed 's/^[^=:]*[=:]//'
Помочь в развитии проекта: