从 jq 输出中的字符串开头删除特定单词

Strip a particular word from the beginning of string in jq output

我正在使用 curl 命令获取如下值列表:

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

只需使用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