sed 前置并有条件地添加双引号

sed prepend and add double-quote conditionnally

使用 makefile 和 bash shell 脚本,我最终得到一个变量包含:

build_ext --b2-args=libtorrent-python-pic=on --b2-args=address-model=32

我需要在正确的位置添加 --global-option= 和双引号,例如:

--global-option=build_ext --global-option=--b2-args="libtorrent-python-pic=on"  --global-option=--b2-args="address-model=32"

请注意,--b2-args= 因人而异,不能想当然。

到目前为止,我为前置所做的是使用 bash 数组:

printf "\x2D\x2Dglobal-option=%s " "${myarray[@]}"

但我宁愿用 sed 来代替单行。

使用任何 sed:

$ sed 's/=\([^ ]*\)/=""/g; s/[^ ]*/--global-option=&/g' file
--global-option=build_ext --global-option=--b2-args="libtorrent-python-pic=on" --global-option=--b2-args="address-model=32"