Мені хотілося дізнатись, чи є спосіб читання з двох вхідних файлів у вкладеному, а циклі по одному рядку. Наприклад, скажімо, що у мене є два файли 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. Я намагався використовувати продовження, перерву, вихід, але жоден з них не призначений для досягнення результату, який я шукаю. Я хотів би, щоб сценарій читав лише один рядок з Файла 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
Це можливо досягти за допомогою циклу while?
paste -d '\n' file1 file2