在 Linux 中从以冒号分隔的键值对中提取值部分

0 sed text-processing json

我需要arn:aws:sns:us-west-2:596873354795:demo使用sed命令从文件中的以下内容中获取。命令是什么?

示例文件:

{
    "TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"
}
Run Code Online (Sandbox Code Playgroud)

tec*_*raf 5

您的示例文件采用名为JSON的结构化格式。sed不是处理此类文件的便捷工具。而是为 JSON 格式安装解析器,例如jq.

要在 Debian 系列 Linux 上安装:

sudo apt-get install jq
Run Code Online (Sandbox Code Playgroud)

要在 Red Hat 系列 Linux 上安装:

sudo yum install jq
Run Code Online (Sandbox Code Playgroud)

对于其他发行版和平台,请查看此页面


然后执行:

cat sample_file | jq -r '.["TopicArn"]'
Run Code Online (Sandbox Code Playgroud)

要得到:

arn:aws:sns:us-west-2:596873354795:demo
Run Code Online (Sandbox Code Playgroud)

查看jq 手册中的示例以从更复杂的文件中检索。