Tôi muốn biết liệu có cách đọc nào từ hai tệp đầu vào trong một vòng lặp trong khi lặp một dòng tại một thời điểm không. Ví dụ: giả sử tôi có hai tệp FileA
và FileB
.
Tập tin:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
TệpB:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Tập lệnh mẫu hiện tại:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Chấp hành:
[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
Vấn đề và đầu ra mong muốn:
Vòng lặp này hoàn toàn trên FileB cho mỗi dòng trong FileA. Tôi đã thử sử dụng tiếp tục, phá vỡ, thoát nhưng không ai trong số chúng có nghĩa là để đạt được đầu ra mà tôi đang tìm kiếm. Tôi muốn tập lệnh chỉ đọc một dòng từ Tệp A và sau đó một dòng từ FileB và thoát khỏi vòng lặp và tiếp tục với dòng thứ hai của Tệp A và dòng thứ hai của Tệp B. Một cái gì đó tương tự với tập lệnh sau -
[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
Điều này có thể đạt được với vòng lặp while không?
paste -d '\n' file1 file2