Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

172
Vistas
Imprima solo la columna 'Nombres' de la salida 'docker-container ls -la'

Al emitir el docker container ls -la , el resultado se ve así:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox "tail -f /dev/null" 26 seconds ago Up 25 seconds recursing_liskov

Me gustaría obtener solo el nombre del contenedor presente en la columna Names .

Mi idea era usar bash para invertir las columnas en la salida del comando para colocar la columna Names en la primera posición y cortar el nombre del contenedor.

Esto es lo que probé:

 sudo docker container ls -la | rev |tail -n +2 | tr -s ' ' | cut -d ' ' -f 1

Sin embargo, esto no da el resultado esperado y aparece el siguiente error:

 rev: stdin: Invalid or incomplete multibyte or wide character

Estoy atascado porque no sé cómo manejar este error. ¿Se puede arreglar para obtener el resultado que espero? ¿O hay alguna otra forma de obtener mi resultado?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En lugar de jugar con una salida predeterminada, simplemente imprima exactamente lo que está buscando desde el principio. La mayoría de los subcomandos de la ventana acoplable aceptan una opción --format que tomará una expresión de plantilla go para especificar lo que desea exactamente.

En su caso, creo que el siguiente comando debería dar lo que está buscando:

 $ docker container ls -la --format "{{.Names}}" recursing_liskov

Por supuesto, puede agregar más columnas si lo desea, en el orden que mejor se adapte a sus necesidades. Puede obtener fácilmente una lista de todas las claves disponibles con algo como:

 $ docker container ls -la --format "{{json .}}" | jq { "Command": "\"tail -f /dev/null\"", "CreatedAt": "2022-01-15 23:43:54 +0100 CET", "ID": "a67f0c2b1769", "Image": "busybox", "Labels": "", "LocalVolumes": "0", "Mounts": "", "Names": "recursing_liskov", "Networks": "bridge", "Ports": "", "RunningFor": "20 minutes ago", "Size": "0B (virtual 1.24MB)", "State": "running", "Status": "Up 20 minutes" }

Aquí hay un ejemplo solo para ilustrar el uso de algunos de los campos:

 $ docker container ls -la --format "container {{.Names}} is in state {{.State}} and has ID {{.ID}}" container recursing_liskov is in state running and has ID a67f0c2b1769

Algunas referencias aleatorias de varias que usé:

  • https://devcoops.com/filter-output-of-docker-image-ls/
  • https://windsock.io/customising-docker-cli-output/
over 4 years ago · Santiago Trujillo Denunciar

0

No estoy seguro de haber entendido tu pregunta, pero si solo quieres reorganizar el orden de las columnas, puedes usar awk y su función printf . No es la forma más elegante, pero dependiendo de su caso de uso, podría funcionar para usted.

Por ejemplo, puede usar lo siguiente para un comando de salida de dos columnas:

 cmd | awk '{printf ("%s\t%s\n", $1, $2)}'

De la misma manera, podrías hacer:

 docker container ls -la | awk '{printf ("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", $8, $1, $2, $3, $4, $5, $6, $7)}'

Como dije, esto puede considerarse una solución sucia, pero no estoy seguro de lo que exige su caso de uso. Tenga en cuenta que la primera fila con el nombre de las columnas no será tan bonita como lo es de forma predeterminada. Puede arreglar eso dando a cada uno de los elementos un ancho (máximo) ( %5s establece un ancho de 5).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda