aws ec describe-instancesを介して解析しているAWSインスタンスのグループがあります。 IPが'10 .10 'で始まらないすべてのレコードを整理しようとしています。JQ文字列と一致しない項目を選択します。
aws ec2 describe-instances --no-paginate --filter "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].{Private:PrivateIpAddress,PublicDNS:PublicDnsName,PublicIP:PublicIpAddress}' | jq '.[] | select(.Private | contains("10.10"))'
これは私が私が望むものとまったく逆のものになります。私は何らかの形でインクルードを否定できるはずですが論理的には思えますが、私はドキュメンテーションや実験を通してそれを収集することはできませんでした。私のjqの熟練度は中途半端なので、ここで間違った演算子や関数を使用しているかもしれません。
私はこの特定のjq質問への回答が好きですが、--queryスイッチを使用してJMESPathを使用しても同じ結果が得られます。
select述語の末尾に 'not 'を追加するだけです。 –
申し訳ありませんが、私は構文がどうあるべきかはよくわかりません。あなたは詳しく説明できますか?私はいくつかの異なる場所に "not"を追加しようとしましたが、私はjqコンパイルエラーを受けています。 –
'select(.Private | contains(" 10.10 ")| not)'おそらく[startswith/1'](https://stedolan.github.io/jq/manual/#startswith(str))をあなたが特に文字列の先頭にそれを望んでいないからです。 –