2 farklı dosyadan aynı satırları almak için bash betiği

0

Soru

Kullanıcılar aradı örnek dosya için geldim ve dahil oldu

user1
user2
user3

ve dahil olmak üzere newusers adlı dosya:

newuser1
newuser2
newuser3

ve şimdi kullanıcı1 ve newuser1'i almak için bash betiğine ihtiyacım var ve örneğin 'mv kullanıcı1'den newuser1'e' vb.Bazı Komutlar yapıyorum. bunun gibi bir şey ama bu benim için işe yaramıyor:

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

En iyi cevabı

2

İki döngüyü yuvalarsanız, "kullanıcı sayısı" * "yeni kullanıcı sayısı" taşıma işlemlerini alırsınız. Ancak yalnızca" kullanıcı sayısı " taşıma işlemlerini istiyorsunuz.

Saf 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

Senden çok işe yarıyor. Zamanımı kurtardın.İyi günler.
Samir Ahmadli
1

Dosyaların aynı sırada ve aynı sayıda satırda olması şartıyla:

tab=$(printf '\t')

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

Bu bash çalışır veya sh. İlgili satırları kullanarak bir komut oluşturabilirsiniz. Satırlar zaten sekme içeremez.

2021-11-23 08:39:51

Diğer dillerde

Bu sayfa diğer dillerde

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