当我查询docker images ,我得到这个:
#> docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE local/debian 7.5 172c7702a46f 2 weeks ago 175.1 MB local/debian wheezy 172c7702a46f 2 weeks ago 175.1 MB
使用grep我提取图像标签:
#> docker images | grep -oP '\S+(?=\s+172c7702a46f)' 7.5 wheezy
我怎样才能改进这只是为了获得wheezy ,避免任何匹配\d+\.\d+ ?
grepexpression式太复杂了。 使用awk作为一个更直接,清晰的解决scheme,不需要正则expression式向导来读取:
docker images | awk '$3 == "172c7702a46f" && $2 ~ /^[az]/ {print $2}'
即:如果第3列是172c7702a46f,而第2列以字母开头,请打印第2列。