I saw a bash command sed 's%^.*/%%'
Usually the common syntax for sed is sed 's/pattern/str/g', but in this one it used s%^.* for the s part in the 's/pattern/str/g'.
My questions:
What does s%^.* mean?
What’s meaning of %% in the second part of sed 's%^.*/%%'?
The
%is an alternative delimiter so that you don’t need to escape the forward slash contained in the matching portion.So if you were to write the same expression with
/as a delimiter, it would look like:which is also kind of difficult to read.
Either way, the expression will look for a forward slash in a line; if there is a forward slash, remove everything up to and including that slash.