Saya memiliki daftar nama pengguna, dan daftar kata sandi. Saya perlu menggabungkan mereka ke dalam daftar yang dipisahkan titik dua.

File user.txt berisi sesuatu seperti ini:

name1
name2
name3
name4
name5
name6

File passwords.txt lebih pendek dari file user.txt:

pass1
pass2
pass3

Bagaimana saya bisa menggabungkannya, sehingga setiap kata sandi digunakan oleh setiap nama pengguna setidaknya sekali, dan dalam format berikut?

name1:pass1
name2:pass1
name3:pass1
...
name2:pass2
name2:pass3
...
-1
WR7500 20 September 2019, 06:16

1 menjawab

Jawaban Terbaik

Bisakah Anda mencoba mengikuti.

awk -v OFS=":" 'FNR==NR{a[++count]=$0;next} {val=++val==count?1:val;print $0,a[val]}' passwords.txt users.txt

Menambahkan bentuk non-satu liner dari solusi di atas.

awk -v OFS=":" '
FNR==NR{
  a[++count]=$0
  next
}
{
  val=++val==count?1:val
  print $0,a[val]
}
' passwords.txt users.txt
1
RavinderSingh13 20 September 2019, 04:00