Saya ingin tahu apakah ada cara membaca dari dua file input dalam sebuah nested loop satu baris sekaligus. Sebagai contoh, katakanlah saya punya dua file FileA
dan FileB
.
FileA:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
FileB:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Skrip Contoh Saat Ini:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Eksekusi:
[jaypal:~/Temp] ./read.sh
this is File A line1
this is File B line1
this is File B line2
this is File B line3
this is File A line2
this is File B line1
this is File B line2
this is File B line3
this is File A line3
this is File B line1
this is File B line2
this is File B line3
Masalah dan output yang diinginkan:
Ini loop atas FileB sepenuhnya untuk setiap baris di FileA. Saya mencoba menggunakan continue, break, exit tetapi tidak satupun dari mereka yang dimaksudkan untuk mencapai output yang saya cari. Saya ingin skrip untuk membaca hanya satu baris dari File A dan kemudian satu baris dari FileB dan keluar dari loop dan lanjutkan dengan baris kedua dari File A dan baris kedua dari File B. Sesuatu yang mirip dengan skrip berikut -
[jaypal:~/Temp] cat read1.sh
#!/bin/bash
count=1
while read lineA
do echo $lineA
lineB=`sed -n "$count"p fileb`
echo $lineB
count=`expr $count + 1`
done < filea
[jaypal:~/Temp] ./read1.sh
this is File A line1
this is File B line1
this is File A line2
this is File B line2
this is File A line3
this is File B line3
Apakah ini mungkin dicapai dengan while?
paste -d '\n' file1 file2