Script bash pour prendre la même ligne, à partir de 2 fichiers différents

0

La question

J'ai par exemple un fichier appelé utilisateurs et comprennent

user1
user2
user3

et fichier appelé newusers y compris:

newuser1
newuser2
newuser3

et maintenant j'ai besoin de script bash pour prendre user1 et newuser1, et faire de la commande comme par exemple le "mv user1 à newuser1" et etc. quelque chose comme cela, mais ce n'est pas de travail pour moi:

user=cat users
newuser= cat newusers

for u in user ; for n in newuser; do mv $u $n done; done
bash centos linux sh
2021-11-23 07:21:43
2

La meilleure réponse

2

Si vous imbriquez les deux boucles, vous obtenez "nombre d'utilisateurs" * "nombre de newusers" les opérations de déplacement. Mais vous voulez seulement "nombre d'utilisateurs," les opérations de déplacement.

Pur Bash:

#! /bin/bash

exec {users}<users
exec {newusers}<newusers

while true; do
  read user <&$users || exit
  read newuser <&$newusers || exit
  mv "$user" "$newuser"
done
2021-11-23 08:19:36

Il fonctionne, que vous beaucoup. Vous enregistrez mon temps.Avoir une belle journée.
Samir Ahmadli
1

À condition que les fichiers sont dans l'ordre de pertinence, et le même nombre de lignes:

tab=$(printf '\t')

paste users newusers |
while IFS=$tab read user newuser; do
    echo "move $newuser $user"
done

Il fonctionne en bash ou sh. Vous pouvez créer une commande à l'aide de la ligne correspondante. Les lignes ne peuvent pas déjà contenir des onglets.

2021-11-23 08:39:51

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................