Script bash pentru a lua aceleași linii din 2 fișiere diferite

0

Problema

Am de exemplu fișier numit utilizatori și e includ

user1
user2
user3

și fișier numit newusers inclusiv:

newuser1
newuser2
newuser3

și acum am nevoie de script bash pentru user1 și newuser1 și de a face unele de comandă, de exemplu, 'mv user1 să newuser1 și etc. ceva de genul asta, dar acest lucru nu este de lucru pentru mine:

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

Cel mai bun răspuns

2

Dacă cuibul cele două bucle, veți obține "numărul de utilizatori" * "numărul de newusers" muta operațiunile. Dar vrei doar "numărul de utilizatori" muta operațiunile.

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

Acesta funcționează, decât o mulțime. Să economisiți timp.Să ai o zi frumoasă.
Samir Ahmadli
1

Condiția fișierele sunt în ordine de potrivire, și același număr de linii:

tab=$(printf '\t')

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

Acesta funcționează în bash sau sh. Puteți construi o comanda folosind liniile corespunzătoare. Liniile pot conține deja file.

2021-11-23 08:39:51

În alte limbi

Această pagină este în alte limbi

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