使用sed或awk替换字符串

使用sed或awk替换字符串,awk,sed,git-bash,Awk,Sed,Git Bash,我有一个文件,其中有许多字段,所以我设法提取我需要使用的部分数据 variable= awk -F "," '{print $2}' filename.txt 我得到的字符串是 "client":"c62e-c5a9-4611-91c6-118b4ee" 现在我想把这个字符串改成 export client=c62e-c5a9-4611-91c6-118b4ee 当我尝试 variable2= awk -F """ '{print $4}' $variable 它不起作用,因为我的计划是

我有一个文件,其中有许多字段,所以我设法提取我需要使用的部分数据

variable= awk -F "," '{print $2}' filename.txt
我得到的字符串是

"client":"c62e-c5a9-4611-91c6-118b4ee"
现在我想把这个字符串改成

export client=c62e-c5a9-4611-91c6-118b4ee
当我尝试

variable2= awk -F """ '{print $4}' $variable
它不起作用,因为我的计划是先拉这根绳子 62e-c5a9-4611-91c6-118b4ee然后在前面追加导出客户端=inf,但我也不能这样做

如果有人能在awk或sed上提供帮助,并能给我期望的结果,我将不胜感激

谢谢

更新:这是完整的代码,根据我的请求,我将屏蔽代码与我正在寻找的示例输出放在一起

{"name":"metering","client":"c62e-c5a9-4611-91c6-118b4ee","client_s":"roubhaofga4mm67ncd6","audience":["metering","c68f932e-c5a9-4611-91c6-118b4ef840fe"],"acces_allowed_types":["BEARER"],"grant_types":["CLIENT_CREDENTIALS"],"subject_type":"PUBLIC","access_t":"BEARER","id_t":"UNSIGNED_JWT","resource_":"ACCESS","resource_level":"PUBLIC","token_expiration":3600,"refresh":604800,"scopes":[{"name":"metering","description":"metering"}],"client_method":"CLPOST"}
我所做的是

variable= awk -F "," '{print $2}' filename.txt
echo $variable
我得到的输出是

"client":"c62e-c5a9-4611-91c6-118b4ee"
我想要的是

export client=c62e-c5a9-4611-91c6-118b4ee

我可以看到equal和您的命令之间有一些空格,它也没有包装在
$

var=$(your command)
由于您没有向我们展示示例输入,因此基于您展示的内容

echo "$your_variable" | awk '{gsub("\042","");sub(/:/,"=");print "export",$0}'

不过,如果您能更准确地向我们展示一些示例输入和示例预期输出,那么在这方面可能会有更多帮助

因此,您希望更改行
“client”:“c62e-c5a9-4611-91c6-118b4ee”
导出客户端=c62e-c5a9-4611-91c6-118b4ee
?为什么第四列的输出包含分隔符
?将
grep'c62e-c5a9-4611-91c6-118b4ee'filename.txt
的输出添加到您的问题中。该文件是否包含一行多个字段?如果字段2包含
“QUOTE”:“是或不是”
,您希望设置并导出变量
QUOTE
,还是仍然需要设置
客户机
?您需要在多大程度上担心字符串值中的讨厌字符?类似JSON的材料是否总是在键和值周围加引号?@hi4ppl,请在你的帖子中发布3个简单的东西,1-示例输入\ u文件在代码标签中,2-示例输出在代码标签中,以及所有条件。3-你在代码标签中尝试了什么。谢谢,我添加了示例