Why can s command of sed can be followed by a comma?

bash, gnu, linux, sed, utility

Solution

From Using different delimiters in sed:

sed takes whatever follows the "s" as the separator

It is a good way to avoid escaping too much. Code is more readable if you use a delimiter that is not present in the string you want to handle.

For example let's say we want to replace `lo/bye` from a string. With `/` as delimiter it would be a little messy:

$ echo "hello/bye" | sed 's/lo\/bye/aa/g'
helaa

So if we define another separator it is more clear:

$ echo "hello/bye" | sed 's|lo/bye|aa|g'
helaa
$ echo "hello/bye" | sed 's,lo/bye,aa,g'
helaa

Problem

I saw someone use an expression like: `sed -e 's, *$,,'` does anybody know why we can use it like this, and what does it do? I thought the s command should be `sed -e 'addr,addrs/reg/sub/'` ?

Original source

Related problems