检查Bash中的docker实例

检查Bash中的docker实例,docker,awk,Docker,Awk,拥有docker ps-a 我想匹配名称版本和状态 docker ps -a --format "{{.Image}}\t{{.Status}}" | awk -F$"\t" '{printf "%s|%s\n", $1, $2}' 输出: 如何修改命令使其具有以下功能: glass_front | 2.2.15.4 | Up 6 days glass_proxy | 2.2.15.4 | Up 6 days glass_modele

拥有
docker ps-a

我想匹配
名称
版本
状态

docker ps -a --format "{{.Image}}\t{{.Status}}" | awk -F$"\t" '{printf "%s|%s\n", $1, $2}'
输出:

如何修改命令使其具有以下功能:

glass_front | 2.2.15.4 | Up 6 days
glass_proxy | 2.2.15.4 | Up 6 days
glass_modeles_front| 2.1.5.2 | Up 6 days

尝试在docker ps命令中使用冒号作为分隔符,然后使用sed将冒号转换为管道并删除前缀:

docker ps-a--格式“{.Image}:{{.Status}”\
|sed-e's/:/|/g'-e's,^.*/,'

尝试在docker ps命令中使用冒号作为分隔符,然后使用sed将冒号转换为管道并删除前缀:

docker ps-a--格式“{.Image}:{{.Status}”\
|sed-e's/:/|/g'-e's,^.*/,'

请您尝试以下内容,但没有测试,因为没有
docker
命令。它仅基于完全显示的OP样本输出

docker ps -a --format "{{.Image}}\t{{.Status}}" \  
| awk -F'\t'  '{num=split($1,arr,"[/:]");print arr[num-1],arr[num],$2}' 
或(仅使用
awk的字段分隔功能)


解释(第一种解决方案):运行
docker
程序(显示的操作),然后将其输出作为输入传递给
awk
命令。在
awk
命令中将字段分隔符设置为选项卡。然后将第一个字段拆分为一个数组(arr),分隔符为
/
,最后用当前行的第二个字段在此处打印arr的第二个和最后一个项目。

请尝试以下操作,不要测试它,因为没有
docker
命令。它仅基于完全显示的OP样本输出

docker ps -a --format "{{.Image}}\t{{.Status}}" \  
| awk -F'\t'  '{num=split($1,arr,"[/:]");print arr[num-1],arr[num],$2}' 
或(仅使用
awk的字段分隔功能)


解释(第一种解决方案):运行
docker
程序(显示的操作),然后将其输出作为输入传递给
awk
命令。在
awk
命令中将字段分隔符设置为选项卡。然后将第一个字段拆分为一个数组(arr),分隔符为
/
,最后在此处使用当前行的第二个字段打印arr的第二个和最后一个项目。

第一个方案更一般,不假设路径中的元素数量,第二个假设是a/b/c/d第一个建议更一般,不假设路径中的元素数量,第二个假设是a/b/c/d
docker ps -a --format "{{.Image}}\t{{.Status}}" \ 
 | awk -F"[/:\t]" '{print $4,$5,$NF}'