উত্তর:
এরকম কিছু কাজ করবে:
xargs cat <filenames.txt
xargs
প্রোগ্রাম তার মান ইনপুট সার্চ, এবং ইনপুট প্রতিটি লাইন জন্য রান cat
যুক্তি (গুলি) যেমন ইনপুট লাইনের প্রোগ্রাম।
আপনি যদি সত্যিই কোনও লুপটিতে এটি করতে চান তবে আপনি এটি করতে পারেন:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"ফরচ" বাশের নাম নয়। এটি কেবল "জন্য"। আপনি কেবল এক লাইনে জিনিসগুলি করতে পারেন:
for fn in `cat filenames.txt`; do cat "$fn"; done
তথ্যসূত্র: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
এখানে একটি while
লুপ:
while read filename
do
echo "Printing: $filename"
cat "$filename"
done < filenames.txt
read
xargs --arg-file inputfile cat
এটি ফাইলের সামগ্রীগুলির পরে ফাইলের নাম আউটপুট দেবে:
xargs --arg-file inputfile -I % sh -c "echo %; cat %"
আপনি সম্ভবত আপনার ফাইলের নামগুলিতে ফাঁকা স্থানগুলি পরিচালনা করতে চাইবেন, যদিও সেগুলি ঘৃণিত হয় :-)
সুতরাং আমি প্রাথমিকের মতো কিছু পছন্দ করবো:
pax> cat qq.in
normalfile.txt
file with spaces.doc
pax> sed 's/ /\\ /g' qq.in | xargs -n 1 cat
<<contents of 'normalfile.txt'>>
<<contents of 'file with spaces.doc'>>
pax> _
cat `cat filenames.txt`
কৌতুক করবে
তাদের সকলের যদি একই এক্সটেনশন থাকে (উদাহরণস্বরূপ .jpg), আপনি এটি ব্যবহার করতে পারেন:
for picture in *.jpg ; do
echo "the next file is $picture"
done
(ফাইলের নাম ফাঁকা থাকলে এই সমাধানটিও কাজ করে)