আমি জানতে চেয়েছিলাম যে একবারে একটি লাইন লুপ করার সময় নেস্টযুক্ত দুটি ইনপুট ফাইল থেকে পড়ার কোনও উপায় আছে কিনা। উদাহরণস্বরূপ, ধরা যাক আমার কাছে দুটি ফাইল রয়েছে 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
সমস্যা এবং পছন্দসই আউটপুট:
এটি ফাইলএ-র প্রতিটি লাইনের জন্য ফাইলবি-র উপর সম্পূর্ণভাবে লুপ করে। আমি চালিয়ে যাওয়া, বিরতি, প্রস্থান ব্যবহার করার চেষ্টা করেছি তবে সেগুলির কোনওটিই আমি সন্ধান করছি না এমন আউটপুট অর্জনের জন্য বোঝানো হচ্ছে। আমি স্ক্রিপ্টটি ফাইল এ থেকে কেবল একটি লাইন এবং তারপরে ফাইলবি থেকে একটি লাইন পড়তে এবং লুপ থেকে প্রস্থান এবং ফাইল এ এর দ্বিতীয় লাইন এবং ফাইল বি এর দ্বিতীয় লাইনের সাথে চালিয়ে যেতে চাই - নীচের স্ক্রিপ্টের অনুরূপ কিছু -
[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