Saltar al contenido

Agregue ceros a la izquierda a la variable awk

Solución:

Aquí se explica cómo crear ceros a la izquierda con awk:

# echo 1 | awk '{ printf("%02dn", $1) }'
01
# echo 21 | awk '{ printf("%02dn", $1) }'
21

Reemplazar %02 con el número total de dígitos que necesita (incluidos los ceros).

Reemplazar file en salida con sprintf("%02d", file).

O incluso toda la tarea con filename = sprintf("%s_%02d.pdb", pdb, file);.

Esto lo hace sin recurrir a printf, que es caro. El primer parámetro es la cadena a rellenar, el segundo es la longitud total después del relleno.

echo 722 8 | awk '{ for(c = 0; c < $2; c++) s = s"0"; s = s$1; print substr(s, 1 + length(s) - $2); }'

Si conoce de antemano la longitud de la cadena de resultados, puede usar una versión simplificada (digamos que 8 es su límite):

echo 722 | awk '{ s = "00000000"$1; print substr(s, 1 + length(s) - 8); }'

El resultado en ambos casos es 00000722.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *