如何使用 sed/aws 从 json 文件中获取值?
Posted
技术标签:
【中文标题】如何使用 sed/aws 从 json 文件中获取值?【英文标题】:how to get the value from json file using sed/aws? 【发布时间】:2021-10-20 19:58:03 【问题描述】:我是 unix 中 sed 和 awk 命令的新手。我有 output.json 文件,该文件具有“docker ps”命令的输出值:
$ cat output.json
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc6f2c93c832 ankur1825/jmeter-chromewebserver:jmeterv1 "bash" 3 minutes ago Up 3 minutes sleepy_mendeleev
我只想获得 CONTAINER-ID 值,即“dc62cf93c832”。我如何通过 sed 或 awk 命令获得此信息。
我在下面尝试过,但这可能只给了我 Container-Id:
$ CONTAINER-ID=$(cat output.json | sed 's/\//_/g')
bash: CONTAINER-ID=CONTAINER: command not found
任何帮助表示赞赏!
【问题讨论】:
那不是 JSON 文件。您对sed 's/\//_/g'
的尝试毫无意义。并且变量名不能包含破折号。
更好的解决方案是将合适的参数传递给docker ps
。如果您使用 docker run --name something
为您的容器分配名称,您的解决方案将只是 docker ps --filter name=something -q
【参考方案1】:
awk 'NR==2print $1' output.json
将为您提供所需的输出,但不清楚您最初认为输入文件是 JSON 还是您尝试使用问题中的 sed 命令做什么。
【讨论】:
以上是关于如何使用 sed/aws 从 json 文件中获取值?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jq 从复杂的 JSON 文件中获取简单的 JSON 数据文件
如何在 laravel 中使用 foreach 从 json 文件中获取所有数据?