Captura a saída do curl após uma string para um arquivo

1

Eu gostaria de produzir tudo depois da string "director-services" para um arquivo de um script bash.

$ curl localhost:9201/_cat/health
1472487809 12:23:29 director-services green 3 3 828 276 0 0 0 0
    
por Hans Geier 29.08.2016 / 19:10

2 respostas

1

Usando a combinação de grep e cut ,

$ curl ... | grep -o "director-services.*" | cut -d' ' -f2- 
green 3 3 828 276 0 0 0 0

ou simplesmente usando perl ,

$ curl ... |  perl -lne 'print $1 if /director-services (.*)/'
green 3 3 828 276 0 0 0 0
    
por 29.08.2016 / 19:23
0

Presumivelmente, você está usando o ElasticSearch com a API _cat para consultar parâmetros de cluster.

Você não precisa de nenhuma ferramenta de processamento externa, a _cat API tem recursos de correspondência de cabeçalhos com metacaracteres correspondentes enquanto usa a consulta ?h= .

Como você precisa obter tudo a partir do cabeçalho da coluna node.total , é possível usar:

_cat/health?h=node.total,*

Exemplo:

% curl 'localhost:9200/_cat/health'               
1472532922 00:55:22 foobar red 1 1 3279 3279 0 0 3190 0 - 50.7% 

% curl 'localhost:9200/_cat/health?v'
epoch      timestamp cluster status node.total node.data shards  pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 
1472532925 00:55:25  foobar  red             1         1   3279 3279    0    0     3190             0                  -                 50.7% 

% curl 'localhost:9200/_cat/health?h=node.total,*'
1 1472532942 00:55:42 foobar red 1 3279 3279 0 0 3190 0 - 50.7% 
    
por 30.08.2016 / 07:02