Refine grep olhe para trás para evitar números

1

Quando eu pesquiso docker images , obtenho isto:

#> 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

Usando grep , extraio as tags de imagem:

#> docker images | grep -oP '\S+(?=\s+172c7702a46f)'
7.5
wheezy

Como posso refinar isso para obter somente wheezy e evitar qualquer coisa que corresponda a \d+\.\d+ ?

    
por balin 30.05.2014 / 21:56

1 resposta

1

A expressão grep é muito complicada. Use awk para uma solução mais direta e clara que não requeira que um assistente de expressão regular leia:

docker images | awk '$3 == "172c7702a46f" && $2 ~ /^[a-z]/ {print $2}'

Ou seja: se a coluna 3 for 172c7702a46f e a coluna 2 começar com letras, imprima a coluna 2.

    
por 27.12.2014 / 14:35