es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir una coincidencia de awk a un comando de Powershell?

Actualmente estoy ejecutando este comando en una máquina Linux para obtener pods más antiguos de 1 día:

kubectl get pod | awk 'match($5,/[0-9]+d/) {print $1}'

Quiero poder ejecutar el mismo comando en Powershell. ¿Cómo puedo hacerlo?

Salida de kubectl get pod:

        NAME       READY     STATUS      RESTARTS      AGE
        pod-name   1/1       Running     0             2h3m
        pod-name2  1/1       Running     0             1d2h
        pod-name3  1/1       Running     0             4d4h

Salida de kubectl get pod | awk 'match($5,/[0-9]+d/) {print $1}':

    pod-name2
    pod-name3
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el mismo resultado en Powershell, podemos usar el siguiente comando:

    kubectl get pod | Select-String -Pattern '[0-9]+d' | ForEach-Object { $_.Line.Split()[0] }
    

    Este comando recuperará el mismo resultado que el comando awk en la máquina Linux, hará lo siguiente:

    1. Obtendrá los pods utilizando kubectl get pod.
    2. Filtrará los pods seleccionando solo aquellos en los que la quinta columna ($5) contenga un número seguido de la letra ‘d’ utilizando Select-String -Pattern '[0-9]+d'.
    3. Extraerá la primera columna, que representa el nombre del pod, utilizando ForEach-Object { $_.Line.Split()[0] }.

Comments are closed.