ฉันต้องการทราบว่ามีวิธีการอ่านใด ๆ จากไฟล์อินพุตสองไฟล์ในแบบซ้อนในขณะที่วนรอบทีละหนึ่งบรรทัด ยกตัวอย่างเช่นช่วยบอกฉันมีสองไฟล์และFileA
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
สคริปต์ตัวอย่างปัจจุบัน:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
การดำเนินการ:
[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
ปัญหาและผลลัพธ์ที่ต้องการ:
นี่เป็นการวนลูปมากกว่า FileB สำหรับแต่ละบรรทัดใน FileA ฉันลองใช้ Continue, break, exit แต่ไม่มีสิ่งใดที่มีไว้เพื่อให้ได้ผลลัพธ์ที่ฉันต้องการ ฉันต้องการสคริปต์เพื่ออ่านเพียงหนึ่งบรรทัดจากไฟล์ A จากนั้นหนึ่งบรรทัดจาก FileB และออกจากลูปและดำเนินการต่อด้วยบรรทัดที่สองของไฟล์ A และบรรทัดที่สองของไฟล์ B. บางสิ่งที่คล้ายกับสคริปต์ต่อไปนี้ -
[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
เป็นไปได้ที่จะประสบความสำเร็จในขณะที่วนซ้ำ?
paste -d '\n' file1 file2