মনে করুন আপনার কাছে এমন একটি ফাইল রয়েছে যার মধ্যে আইপি ঠিকানা রয়েছে, প্রতিটি লাইনে একটি করে ঠিকানা:
10.0.10.1
10.0.10.1
10.0.10.3
10.0.10.2
10.0.10.1
আপনার কাছে একটি শেল স্ক্রিপ্ট দরকার যা প্রতিটি আইপি ঠিকানার জন্য গণনা করা হয় যে এটি ফাইলটিতে কতবার প্রদর্শিত হয়। পূর্ববর্তী ইনপুট জন্য আপনার নিম্নলিখিত আউটপুট প্রয়োজন:
10.0.10.1 3
10.0.10.2 1
10.0.10.3 1
এটি করার একটি উপায়:
cat ip_addresses |uniq |while read ip
do
echo -n $ip" "
grep -c $ip ip_addresses
done
তবে এটি দক্ষ হওয়ার থেকে দূরে।
বাশ ব্যবহার করে আপনি কীভাবে এই সমস্যার সমাধান করবেন?
(যোগ করার জন্য একটি জিনিস: আমি জানি যে এটি পার্ল বা অজানা থেকে সমাধান করা যেতে পারে, আমি ব্যাশে আরও ভাল সমাধানে আগ্রহী, সে ভাষাগুলিতে নয়))
অতিরিক্ত তথ্য:
ধরা যাক উত্স ফাইলটি 5 গিগাবাইট এবং অ্যালগরিদম চালিত মেশিনটিতে 4 জিবি রয়েছে। সুতরাং বাছাই একটি কার্যকর সমাধান নয়, না হয় একাধিকবার ফাইল পড়া হয়।
আমি হ্যাশটেবল-জাতীয় সমাধান পছন্দ করেছি - যে কেউ এই সমাধানটির উন্নতি দিতে পারে?
অতিরিক্ত তথ্য # 2:
কিছু লোক জিজ্ঞাসা করেছিল যে যখন আমি যেমন পার্লের উপায়ে সহজতর হয় তখন কেন আমি ব্যাশ করে এটি করা বিরক্ত করব। কারণটি হ'ল যে মেশিনে আমাকে এই পার্লটি করতে হয়েছিল তা আমার জন্য উপলব্ধ ছিল না। এটি আমার ব্যবহৃত বেশিরভাগ সরঞ্জাম ছাড়াই একটি কাস্টম বিল্ট লিনাক্স মেশিন ছিল। এবং আমি মনে করি এটি একটি আকর্ষণীয় সমস্যা ছিল।
সুতরাং দয়া করে, প্রশ্নটিকে দোষারোপ করবেন না, যদি এটি পছন্দ না করেন তবে এটিকে এড়িয়ে যান। :-)