2016-06-14 1 views
-1

я получаю список значений, как показано ниже, используя завиток команду:Strip конкретное слово с начала строки в выходной JQ

curl -s http://internal.registry.com/v2/_catalog | jq -r '.repositories[0:5] | to_entries | map(.value)[]' 

Выход:

centos 
containersol/consul-server 
containersol/mesos-agent 
containersol/mesos-master 
cybs/address-api 

Я хочу, чтобы убедиться, что выход не должен иметь префикс cybs/. например, cybs/address-api должно быть просто address-api

+0

Просто FYI: 'to_entries | map (.value) [] 'эквивалентно'. [] '. –

ответ

2

sub Просто используйте:

curl ... | jq -r '.repositories[0:5][] | sub("^cybs/"; "")' 

отметить также, что to_entries | map(.value) является NOP и должны быть удалены.

Выходные:

centos 
containersol/consul-server 
containersol/mesos-agent 
containersol/mesos-master 
address-api 
+1

По иронии судьбы, 'map (f) []' также является noop: это расширяется до '[. [] | f] [] ', который можно упростить как'. [] | f'. –

+0

@SantiagoLapresta хе-хе, спасибо за разъяснение! Я обновил ответ :-) – andlrc

Смежные вопросы