Unix 命令 sed 替换变量

Unix 命令 sed 替换变量

我想删除每个值周围的方括号 [] 和引号,并在开始和结束处添加引号。

X = ['8922','9292','3220']

我想要如下输出。

Y = '8922,9292,3220'

我怎样才能做到这一点。请建议。

答案1

就这么简单:将左括号和引号替换为单引号,将引号之间的逗号替换为逗号,并将右括号上的引号再次替换为单引号:

sed "s/\['/'/;s/','/,/g;s/']/'/" file

诀窍通常是找到图案的独特之处。

答案2

假设您有一个 shell 变量X,其值设置如下:

X="['8922','9292','3220']"

然后,您可以使用 删除单引号和方括号tr。您也可以同时插入新的单引号:

Y="'$( printf '%s' "$X" | tr -d "[]'" )'" 

如果您使用bashor zsh,您可以以稍微更紧凑的方式执行此操作:

Y="'${X//[][\']/}'"

相关内容