Una forma rápida de usar Bash para cambiar el nombre de los archivos de una extensión específica a otra. Usaremos un bucle bash, buscar, renombrar y el comando mv para realizar esta acción, la opcion -v del comando mv permite que muestre por pantalla lo que esta realizando. La variable «ubidir» contiene el directorio en donde se realizaran los cambios de extensiones, la variable «oriext» contiene la extensión original de los archivos y la variable «newext» contiene la nueva extensión que tendran los archivos al ejecutar el SCRIPT.
Para este ejemplo le daremos por nombre rut.sh al SCRIPT que verifica el digito verificador del rut chileno. Para ejecutarlo se debe ingresar > bash rut.sh 27962409-2
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
# Debe ingresar el rut completo con guion y digito verificador ej. 12345678-9
rut=$1
# Se valida que el cuerpo del rut solo sean caracters numericos
# si el rut ingresado no tiene solo numeros el script se detiene
# tambien separamos el rut del digito verificador
dve=`echo$rut|cut-d"-"-f2`
rut=`echo$rut|cut-d"-"-f1`
re='^[0-9]+$'
while:
do
if[[$rut=~$re]];then
break
else
echo"<<<< RUT $rut SOLO DEBE TENER CARACTERES NUMERICOS >>>>"
4) Una vez hecho esto, sumamos todos los resultados: 18 + 0 + 16 + 10 + 36 + 73 + 14 + 6 = 163
5) El resultado obtenido lo dividimos por 11, para luego obter el Resto de esa división. 163 / 11 = 14,81818181818182 Tomamos el resultado sin decimales y sin aproximación. En este caso quedaría 14 y lo multimplicamos por 11 14 x 11 = 154
6) Posteriormente, al resultado del paso 4 le restamos los 154 obtenidos anteriormente. 163 – 154 = 9 (valor absoluto, sin signo)
7) Y para finalizar, a 11 le restamos el resultado anterior: 11 – 9 = 2
Y así hemos calculado que 2 es el digito verificador de nuestro Rut, tal cual lo indicamos al comienzo de este ejercicio.
Ahora bien, si como resultado final del digito verficador nos da el número 11, el dígito verificador será 0 y si es 10 el dígito será la letra K.
Cuando ejecutamos ciclos dentro de otro ciclo se denomina ANIDACIÓN. No es aconsejable abusar mucho de esta técnica pues dificulta la comprensión del código.
En el siguiente ejemplo se ejecutan dos ciclos for uno superior que va desde 1 hasta 4, y en cada una de estas 4 iteraciones se realizará el ciclo interno que va desde 1 hasta 3.
¿Te ha servido este sitio alguna vez? Cada script, cada línea de ayuda aquí es fruto de horas de trabajo y pasión por compartir. Si alguna vez resolviste un problema gracias a esta página, considera hacer una donación. Tu aporte —por pequeño que sea— mantiene vivo este proyecto y me impulsa a seguir creando.