用sed或awk替换字符串

时间:2018-02-24 03:39:51

标签: 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

它不起作用,因为我的计划是先拉这个字符串 62e-c5a9-4611-91c6-118b4ee 然后追加 export client = 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

1 个答案:

答案 0 :(得分:1)

我可以在相等和你的命令之间看到一些空格,它也不会包含在$中。

var=$(your command)

因为您还没有向我们展示示例输入,所以根据您显示的内容。

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

虽然如果你能够更准确地向我们展示一些样本输入和样本预期输出,那么可以对此有所帮助。