Script bash para tomar mesmas linhas a partir de 2 de arquivo diferente

0

Pergunta

Eu, por exemplo, o arquivo de chamados de usuários e é incluir

user1
user2
user3

e o arquivo chamado newusers incluindo:

newuser1
newuser2
newuser3

e agora eu preciso de bash script para tomar user1 e newuser1 e fazer algum comando, por exemplo: 'mv user1 para newuser1' e etc. algo parecido com isto, mas isto não está funcionando para mim:

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

Melhor resposta

2

Se você ninho os dois ciclos, você obtém "número de usuários" * "número de newusers" operações de movimentação. Mas você quer que apenas o "número de usuários" das operações.

Pura 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

Ele funciona, do que você um monte. Você guardar o meu tempo.Tenha um bom dia.
Samir Ahmadli
1

Desde os ficheiros são por ordem de correspondência, e o mesmo número de linhas:

tab=$(printf '\t')

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

Ele funciona em bash ou sh. Você pode construir um comando usando as linhas correspondentes. As linhas não podem conter guias.

2021-11-23 08:39:51

Em outros idiomas

Esta página está em outros idiomas

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