명령 출력에서 ​​문자열을 grep하는 방법

명령 출력에서 ​​문자열을 grep하는 방법
NAME                READY     STATUS    RESTARTS   AGE
grepme              1/1       Running   0          20h
grepmetoo           1/1       Running   0          19h

결과:

grepme
grepmetoo

"NAME" 아래의 모든 항목을 수집하고 다른 모든 항목을 삭제하려면 어떻게 해야 하나요?

답변1

사용

command | cut -d' ' -f1 | tail -n+2
# or if delimiter is tab
command | cut -f1 | tail -n+2

# or
command | awk 'NR>1{print $1}'

# or
command | csvcut -d' ' -c NAME | tail -n+2
# or if delimiter is tab
command | csvcut -t -c NAME | tail -n+2

언급했듯이 grep다음을 사용할 수도 있습니다.

command | grep -o '^[^[:blank:]]*' | tail -n+2

하지만 읽기가 더 어렵기 때문에 위의 내용을 선호합니다.
cut솔루션은 최고의 성능을 제공하지만 csvcut단연 최악입니다.

답변2

먼저 필요한 데이터만 출력하는 것을 고려하십시오.

kubectl get pods --no-headers=true -o custom-columns=":metadata.name"

또는

kubectl get pods --no-headers=true -o name

(에서 당겨이 스택 오버플로 스레드그리고kubectl 개요)

관련 정보