Ошибка подстановки параметра awk

Я использую среду Ubuntu 20.04 Mate Desktop .

Я сталкиваюсь со странной ошибкой, когда пытаюсь передать строку date в запрос регулярного выражения в следующей строке:

  date="2020-12-11"

  cat /var/log/dpkg.log | awk  ' / installed / && /$date/ {print $5}'

Я пробовал разные комбинации, как предлагалось на форумах:

  cat /var/log/dpkg.log | awk  ' / installed / && /${date}/ {print $5}'

  cat /var/log/dpkg.log | awk  ' / installed / && "/$date/" {print $5}'

Но они выиграли не работает.

0
задан 12 December 2020 в 22:22

1 ответ

Вы можете передавать переменные с помощью параметра командной строки -v:

date="2020-12-11"

cat /var/log/dpkg.log | awk  -v date="$date" ' / installed / && $0 ~ date {print $5}'

или через массив ENVIRON в случае переменных окружения

export date="2020-12-11"

cat /var/log/dpkg.log | awk  -v date="$date" ' / installed / && $0 ~ ENVIRON["date"] {print $5}'

См., например, Передать переменную оболочки как /pattern/ в awk

2
ответ дан 12 December 2020 в 19:28

Другие вопросы по тегам:

Похожие вопросы: