Невозможно распечатать значение, используя jq с grep - PullRequest
0 голосов
/ 11 июня 2019

Я использую приведенный ниже оператор jq с grep в моем коде для печати значения.

jq '.Subnets[0].Tags' subnet.txt | grep -q "${add}usea1 internal us-east"

Это прекрасно работает для некоторых значений, однако, немногие значения требуют, чтобы grep был "$ {add} use * internal us-east", могу ли я использовать звездочку, чтобы можно было распечатать все мои значения.

Я получаю сообщение об ошибке при включении звездочки. какие-либо предложения?

1 Ответ

1 голос
/ 12 июня 2019

Вы не следовали рекомендациям mcve , но, как указывало @shellter, в описании проблемы предлагается просто использовать правильное (grep) регулярное выражение:

grep -q "${add}use.* internal us-east"

Однако, поскольку вы используете jq в любом случае, вероятно, было бы лучше выполнить фильтрацию, расширив фильтр jq, например, следующим образом:

jq --arg add "$add" '
  .Subnets[0].Tags
  | select(test("\($add)use.* internal us-east"))
' subnet.txt 

...