重新格式化以空格分隔的命令输出

时间:2015-07-16 03:46:31

标签: bash shell

我正在尝试解析docker images的输出,这是:

<none>              <none>              efeea0b4d6fa        3 hours ago         812.9 MB
crew/test           latest              1c322a13e479        3 hours ago         826.6 MB
ros                 jade-ros-core       3f011f658d70        42 hours ago        812.9 MB
ros                 indigo              d2756854a026        42 hours ago        826.6 MB
ros                 indigo-ros-core     dc21afeb431b        42 hours ago        812.1 MB

我想把它变成这种格式:

<none>:<none>
crew/test:latest
ros:jade-ros-core
ros:inigo
ros:indigo-ros-core

我该怎么做?

我只能在第一列中提取:docker images | sed 1d | cut -d" " -f1

2 个答案:

答案 0 :(得分:1)

使用awk

docker images | awk 'NR > 1 { print $1 ":" $2 }'

答案 1 :(得分:0)

您没有说明您正在运行的平台。如果/ usr / bin中的工具是足够新的Gnu工具版本(Linux,Cygwin),这也可以:

docker images|tr -s ' '|cut -d' ' -s --output-delimiter=: -f1,2