Назад | Перейти на главную страницу

Уточните grep, чтобы избежать чисел

Когда я спрашиваю 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+?

В grep выражение слишком сложно. Использовать awk для более простого и понятного решения, которое не требует чтения мастера регулярных выражений:

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

То есть: если столбец 3 - 172c7702a46f, а столбец 2 начинается с букв, выведите столбец 2.