i=0
{ paste res.? res.?? res.???
while paste ./res."$((i+=1))"[0-9][0-9][0-9]
do :; done; } >outfile
আমি মনে করি না যে এটি এতটা জটিল you've আপনি ইতিমধ্যে ফাইলের নামগুলি অর্ডার করে কঠোর পরিশ্রম করেছেন। শুধু তাদের সব খুলুন না, সব।
অন্য উপায়:
pst() if shift "$1"
then paste "$@"
fi
set ./res.*
while [ -n "${1024}" ] ||
! paste "$@"
do pst "$(($#-1023))" "$@"
shift 1024
done >outfile
... তবে আমি মনে করি এটি তাদের পিছনে চলে ... এটি আরও ভালভাবে কাজ করতে পারে:
i=0; echo 'while paste \'
until [ "$((i+=1))" -gt 1023 ] &&
printf '%s\n' '"${1024}"' \
do\ shift\ 1024 done
do echo '"${'"$i"'-/dev/null}" \'
done | sh -s -- ./res.* >outfile
এবং এখানে আরও একটি উপায় রয়েছে:
tar --no-recursion -c ./ |
{ printf \\0; tr -s \\0; } |
cut -d '' -f-2,13 |
tr '\0\n' '\n\t' >outfile
এটি tar
আপনার জন্য সমস্ত ফাইলকে নাল-ডিলিমিট স্ট্রিমে একত্রিত করতে, ফাইলের নাম ছাড়াও এর সমস্ত শিরোনাম মেটাডেটা পার্স করে এবং সমস্ত ফাইলের সমস্ত লাইনকে ট্যাবগুলিতে রূপান্তর করে। এটি প্রকৃত পাঠ্য-ফাইল হওয়াতে ইনপুটটির উপর নির্ভর করে - এর অর্থ প্রতিটি প্রান্তে ডাব্লু / একটি নতুন লাইন এবং ফাইলগুলিতে কোনও নাল-বাইট নেই। ওহ - এবং এটি ফাইলের নামের নিজেদের হচ্ছে সম্পর্কে newline মুক্ত উপর নির্ভর (যদিও যে গনুহ সঙ্গে প্রবলভাবে ঘাঁটা করা যেতে পারে tar
এর --xform
বিকল্প) । এই শর্তগুলি পূরণ করার পরে এটি কোনও সংখ্যক ফাইলের খুব ছোট কাজ করা উচিত - এবং tar
এটি প্রায় সমস্তই করবে do
ফলাফলটি দেখতে লাইনের একটি সেট যা:
./fname1
C1\tC2\tC3...
./fname2
C1\tC2\t...
ইত্যাদি।
আমি প্রথমে 5 টি টেস্টফিল তৈরি করে এটি পরীক্ষা করেছি। আমি এখনই 10000 ফাইল জেনিংয়ের মতো অনুভব করি না, তাই আমি প্রত্যেকের জন্য কিছুটা বড় হয়েছি - এবং এটিও নিশ্চিত করেছিলাম যে ফাইলের দৈর্ঘ্য একটি বিরাট চুক্তির দ্বারা পৃথক। tar
স্ক্রিপ্টগুলি পরীক্ষা করার সময় এটি গুরুত্বপূর্ণ becausetar
নির্ধারিত দৈর্ঘ্যে ইনপুট আটকে দেবে - আপনি যদি কমপক্ষে কয়েকটি পৃথক দৈর্ঘ্যের চেষ্টা না করেন তবে আপনি কখনই জানতে পারবেন না যে আপনি কেবলমাত্র একটিটি পরিচালনা করবেন কিনা।
যাইহোক, পরীক্ষার ফাইলগুলির জন্য আমি করেছি:
for f in 1 2 3 4 5; do : >./"$f"
seq "${f}000" | tee -a [12345] >>"$f"
done
ls
পরবর্তীকালে রিপোর্ট:
ls -sh [12345]
68K 1 68K 2 56K 3 44K 4 24K 5
... তাহলে আমি দৌড়ে গেলাম ...
tar --no-recursion -c ./ |
{ printf \\0; tr -s \\0; }|
cut -d '' -f-2,13 |
tr '\0\n' '\n\t' | cut -f-25
... কেবল প্রতি লাইনে প্রথম 25 টি ট্যাব-বিস্মিত ক্ষেত্রগুলি দেখানোর জন্য (কারণ প্রতিটি ফাইল একক লাইন - সেখানে অনেকগুলি রয়েছে ) ...
আউটপুটটি ছিল:
./1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
./2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
./3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
./4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
./5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
--serial
দিয়ে বিকল্পটি ব্যবহার করার চেষ্টা করেছেনpaste
?