我们在使用dockers的过程中,有时需要格式化输出的内容,以便后续脚本自动化处理,通常的话我们会用到 awk,sed,grep等命令来实现,但是那样有点麻烦且不优雅,于是我想有没有更好的,更优雅的方式实现docker标准输入输出的格式化呢,
比如我们想看docker的version使用docker version发现出来的是很多条字段,如何获取类似 1.2.1 的版本号呢?
通过 docker version --help 命令 (随便选的version 字段,也可以换成别的命令哈)发现了 --format 这个好东西
Usage: docker version [OPTIONS]
Show the Docker version information
Options:
-f, --format string Format the output using the given Go template
--kubeconfig string Kubernetes config file
我们知道 docker是go语言写的,结合看到上面的提示,于是我们去研究了一下Go语言的template,下面开始实操
如:格式化输入容器ID作为docker rm的入参,实现批量删除docker容器
docker ps -a --format="{{ .ID }}" | xargs docker rm
如:过滤Version,仅输出version字符串
docker version --format='{{ .Client.Version }}'
那到这小伙伴可能要问了,你怎么知道他format里面的字段是什么呢,那么就有下面的命令了,意思是输出整串json字符串,你去试了就知道了
docker version --format='{{json .}}
那你要问问为什么要用json字段,那你属实是高手,
就写这么多了,有看不懂的多多思考~ (或者来跟我交流也可以haha)