Я хочу select()
объект, основанный на строке, содержащей переменную jq ($ARCH
), используя аргумент -arg
jq.Вот пример использования при поиске "/bin/linux/$ARCH/kubeadm
" из Google ...
# You may need to install `xml2json` IE
# sudo gem install --no-rdoc --no-ri xml2json and run the script I wrote to do the xml2json:
#!/usr/bin/ruby
# Written by Jim Conner
require 'xml2json'
xml = ARGV[0]
begin
if xml == '-'
xdata = ARGF.read.chomp
puts XML2JSON.parse(xdata)
else
puts XML2JSON.parse(File.read(file2parse).chomp)
end
rescue => e
$stderr.puts 'Unable to comply: %s' % [e.message]
end
Затем выполните следующее:
curl -sSL https://storage.googleapis.com/kubernetes-release/ > /var/tmp/k8s.xml | \
xml2json - | \
jq --arg ARCH amd64 '[.ListBucketResult.Contents[] | select(.Key | contains("/bin/linux/$arch/kubeadm"))]'
... который возвращает пустой набор, потому что jq
не транслитерируется внутри кавычек.Я знаю, что могу обойти это с помощью множественного выбора / содержит (), но я бы предпочел не делать этого, если это возможно.
jq
просто может этого не делать, но если кто-то знает способ сделать это,Я был бы очень признателен.