Whin3
Whin3

Reputation: 725

using sed, remove everything before the first occurence of a character

Let's say I have a line looking like this

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

How can I do if I want to get everything after the first = or : using sed?

In this example, I would like to get the result

Bart and my second is =Homer

I am using sed 's/.*[=:]//' right now but I get Homer as result (everything after the last = or :) and I would like to get everything after the first, and not the last = or :

Upvotes: 11

Views: 33844

Answers (1)

Mad Physicist
Mad Physicist

Reputation: 114230

Normally, quantifiers in sed are greedy, which is why you will always match the last =. What defines the first = is that all the characters before it are not =, so:

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

Your question implies that either : or = are valid markers, in which case

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

Upvotes: 24

Related Questions