문자열 이후의 컬 출력을 파일로 캡처

문자열 이후의 컬 출력을 파일로 캡처

bash 스크립트에서 "director-services" 문자열 뒤의 모든 내용을 파일로 출력하고 싶습니다.

$ curl localhost:9201/_cat/health
1472487809 12:23:29 director-services green 3 3 828 276 0 0 0 0

답변1

grep및 의 조합을 사용하십시오 cut.

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

아니면 간단히 perl,

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

답변2

_catElasticSearch 및 API를 사용하여 클러스터 매개변수를 쿼리한다고 가정합니다 .

외부 처리 도구가 필요하지 않습니다. _catAPI에는 쿼리를 사용할 때 메타 문자를 일치시킬 수 있는 헤더 일치 기능이 있습니다 ?h=.

열 헤더부터 시작하여 모든 것을 가져와야 하므로 다음을 node.total사용할 수 있습니다.

_cat/health?h=node.total,*

예:

% 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% 

관련 정보