NAME READY STATUS RESTARTS AGE
grepme 1/1 Running 0 20h
grepmetoo 1/1 Running 0 19h
Ergebnis:
grepme
grepmetoo
Wie kann ich alles unter „NAME“ greppen und alles andere entfernen?
Antwort1
Verwenden
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
Wie Sie bereits erwähnt haben grep
, können Sie auch
command | grep -o '^[^[:blank:]]*' | tail -n+2
Aber ich würde eine der oben genannten Lösungen bevorzugen, da sie viel schwieriger zu lesen ist.
Die cut
Lösung hat die beste Leistung, csvcut
bei weitem die schlechteste.
Antwort2
Überlegen Sie, zunächst nur die gewünschten Daten auszugeben:
kubectl get pods --no-headers=true -o custom-columns=":metadata.name"
oder
kubectl get pods --no-headers=true -o name
(Gezogen ausdieser Stack Overflow-Threadund daskubectl-Übersicht)