7

I am trying to understand a shell script that uses sed. I found that there were some places where sed was invoked with the -e option.

I tried to see the man page and it just mentions,

-e command

Append the editing commands specified by the command argument to the list of commands.

which is not very clear to me.

Can someone kindly explain to me what the -e does? Thanks.

PS: I am using sed in mac

Sudar
  • 181

1 Answers1

9

The -e parameters tells sed that you wish to supply multiple commands:

sed -e 's/string1/string2/g' -e 's/string4/string5/g'

This will replace string1 with string2 and string4 with string5.

  • Thanks. That explains it. Now the cryptic message in the man command makes sense. –  Apr 15 '13 at 11:06
  • :-) glad to be of help –  Apr 15 '13 at 11:07
  • 2
    Why is this the accepted answer? It still does not truly reveal the true purpose of -e because the above script can be done similarly by: sed 's/string1/string2/g;s/string4/string5/g' file. Whatever separate expressions you have, you can fuse them into 1 expression and then drop the -e. Can somebody please reveal the necessity purpose of -e in sed? – daparic Oct 22 '18 at 17:19
  • 1
    @daixtr It's explained in this answer. – weibeld Jan 31 '19 at 13:47