你能帮我解决吗?
inputs='["some string", "BBB", "CCC", "something else"]'
到
inputs=( "some string" "BBB" "CCC" "something else" )
使用一些bash代码?
谢谢。
后来编辑: 结果应该是一个bash数组。根据@james和@Francois提供的解决方案,他们只创建一个字符串。
有什么想法吗? 再次感谢。
答案 0 :(得分:2)
假设您有一个名为inputs
的变量包含["some string", "BBB", "CCC", "something else"]
,那么您可以使用jq
和mapfile
:
$ mapfile -t inputs < <(jq -r '.[]' <<< "$inputs")
$ printf '<%s>' "${inputs[@]}"
<some string><BBB><CCC><something else>
答案 1 :(得分:1)
$ sed "s/\[/( /; s/]/ )/; s/[',]//g" foo
inputs=( "some string" "BBB" "CCC" "something else" )
首先将\[
替换为(
,将]
替换为)
,然后将'
和,
替换为nuthin&#39;。
答案 2 :(得分:1)
使用sed
inputs=$(echo $inputs | sed -e "s/\[/( /" -e "s/\]/ )/" -e "s/,//g")
(最后一个表达式删除逗号,在第一次尝试中忽略它)