bash - Programmatically feed parameters to sed -


say have bash script, first parses parameters/files. result, script generates following string:

args="-e 's/\\\$foo\\b/bar/gi' -e 's/\\\$baz\\b/qux/gi'" 

now want feed resulting string (-e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi') sed in order perform search , replace on instance following file:

hello $foo, hello $baz 

if 1 uses sed -e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi', returns:

hello bar, hello qux 

if 1 calls:

sed $args 

it gives error:

sed: -e expression #1, char 1: unknown command: `'' 

how can programmatically feed sequence of parameters sed?

avoid crazy escaping , declare args variable shell array:

args=(-e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi') 

and use in sed as:

s='hello $foo, hello $baz' echo "$s" | sed "${args[@]}" hello bar, hello qux 

Comments

Popular posts from this blog

Capture and play voice with Asterisk ARI -

c++ - Can not find the "fiostream.h" file -

visual studio - Installing Packages through Nuget - "Central Directory corrupt" -