Script de Bash para tomar las mismas líneas de 2 archivos diferentes.
Tengo por ejemplo un archivo llamado usuarios y contiene:
user1
user2
user3
y un archivo llamado nuevosusuarios que contiene:
newuser1
newuser2
newuser3
y ahora necesito un script bash para tomar user1 y newuser1 y hacer algún comando, por ejemplo ‘mv user1 a newuser1’ y así sucesivamente.
Algo como esto, pero no me funciona:
user=cat usuarios
newuser=cat nuevosusuarios
para u en usuario ; para n en nuevosusuarios ; hacer mv $u $n ; finalizar; finalizar
davy.ai
Para solucionar este script, puede utilizar un bucle
while
para leer ambos archivos línea por línea, y luego usar el comandomv
para mover al usuario original al nuevo nombre de usuario. Aquí hay un script actualizado:En este script, establecemos los nombres de archivo para los archivos de usuarios y nuevos usuarios como variables. Luego, usamos un bucle
while
para leer cada línea de ambos archivos. La sintaxis<&3
se utiliza para redirigir la entrada estándar para el comandoread
de la variablenuevo_usuario
al descriptor de archivo 3, para que lea desde el archivonuevos_usuarios
en lugar de la entrada estándar.Dentro del bucle, usamos el comando
mv
para mover al usuario original al nuevo nombre de usuario.Tenga en cuenta que este script asume que el número de usuarios en el archivo
usuarios
es el mismo que el número de nuevos usuarios en el archivonuevos_usuarios
. Si esto no es así, es posible que desee agregar algún control de errores para manejar la inconsistencia.