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
Post a Comment