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)