我需要arn:aws:sns:us-west-2:596873354795:demo
使用命令从文件中获取以下内容sed
。命令是什么?
样本文件:
{
"TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"
}
答案1
答案2
如果您熟悉 sed、grep、awk 等面向行的工具,并且只想简单地提取键/值对,那么您可能会发现jsonpipe
使用它比jq
.
默认情况下,键被打印为/
- 分隔的路径,并通过制表符与值分隔。
例如
$ json='{"TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"}'
$ echo "$json" | jsonpipe
/ {}
/TopicArn "arn:aws:sns:us-west-2:596873354795:demo"
$ echo "$json" | jsonpipe | awk -F'\t' '$1 == "/TopicArn" {print $2}'
"arn:aws:sns:us-west-2:596873354795:demo"
其 debian 包的详细信息:
包:python-jsonpipe
Description-en: 将 JSON 转换为 UNIX 友好的基于行的格式
jsonpipe 遍历 JSON 对象并生成简单的、基于行的文本格式,该格式可以由所有您喜爱的 UNIX 工具(如 grep、sed、awk、cut 和 diff)进行处理。它在编程语言中也可能很有价值——事实上,它最初被认为是一种针对 JSON 输出编写简单测试断言的方法,而不会将测试与所使用的特定结构过于紧密地耦合。