সমান্তরাল সঙ্গে awk ব্যবহার


1

আমার কাছে প্রতি 300MB এর প্রায় 3,000 ফাইল রয়েছে এবং আমি আমার 16 টি কোর সার্ভারের সাথে যত তাড়াতাড়ি সম্ভব সিরিজ ধারাবাহিক অনুসন্ধান করতে চাই।

এটি আমি চেষ্টা করেছিলাম কিন্তু এটি ফাইলগুলির সন্ধানের সমান্তরাল বলে মনে হয় না।

sudo find /mnt2/preprocessed/preprocessed/mo* | sudo xargs awk '/substring/ {c++} END {print c}' | paste -sd+ | bc

কীভাবে করা যায় তা থেকে এটি এক সাথে আটকানো হয়েছে, আমি এটি পুরোপুরি বুঝতে পারি না। আমি কীভাবে ফাইল প্রসেসিং বিভক্ত করতে পারি তার জন্য আপনার কোনও পরামর্শ আছে?


1
আপনি সম্ভবত I / O, সিপিইউ-আবদ্ধ নয়।
নিকোল হ্যামিল্টন

এটি একটি উচ্চ- I / O উদাহরণ (হাই 1.4xlarge ec2), তবে আপনি সম্ভবত ঠিক বলেছেন। আমি এখনও এই প্রসঙ্গে জিএনইউ সমান্তরাল কীভাবে ব্যবহার করতে পারি তা জানতে চাই কিন্তু এটি কাজ করতে সক্ষম হয়নি।
কেলোরেক

উত্তর:


1
  1. parallelআপনার সিস্টেমে আপনার প্রোগ্রাম আছে কিনা তা দেখুন । (এটি জিএনইউ থেকে আসতে পারে)) আপনি যদি তা করেন তবে কীভাবে এটি ব্যবহার করবেন তা নির্ধারণ করুন। তা না হলে,
  2. আপনার findআউটপুট দিয়ে কোনও ফাইলে চালান । একটি টেক্সট সম্পাদক ব্যবহার করে বা সম্ভবত কোনও স্ক্রিপ্ট যেমন সরঞ্জামগুলি ব্যবহার করে headসেই ফাইলটিকে (প্রায়) সমান সংখ্যক রেখার (যেমন, পাওয়া ফাইলগুলির সমান সংখ্যার রেফারেন্সিং) দিয়ে 16 টি টুকরো ফাইলগুলিতে বিভক্ত করুন। তারপরে 16 টি awk … | paste … | bcপাইপলাইন শুরু করুন ; প্রতিটি খণ্ড ফাইলের জন্য একটি। (এবং 16 টি ফলাফল যুক্ত করুন))

আমি ভাবছি যে আপনি awkযখন কোনও স্ট্রিংয়ের উপস্থিতিগুলি গণনা করতে ব্যবহার করছেন যখন এটির grep -cজন্য বিশেষভাবে ডিজাইন করা হয়েছে।


1

জিএনইউ সমান্তরাল এক্সগার্সের সাথে বেশ সামঞ্জস্যপূর্ণ, আপনার ক্ষেত্রে এটি এটি প্রতিস্থাপন করতে পারে। কি তোমার একার ঘটনার গণনা হয় substringব্যবহার grep -cযেমন স্কট প্রস্তাব দেওয়া:

sudo find /mnt2/preprocessed/preprocessed/mo* | 
  sudo parallel grep -c source | paste -sd+ | bc

নোট করুন যে GNU / লিনাক্সের কিছু সংস্করণ GNU সমান্তরাল "টোলফের সমান্তরাল" সামঞ্জস্যপূর্ণ মোডে ইনস্টল করে। আপনি --gnuসমান্তরাল কমান্ড লাইন যুক্তি যুক্ত করে এটি পরিবর্তন করতে পারেন । পরিবর্তনটিকে স্থায়ীভাবে যুক্ত --gnuকরতে ~/.parallel/config


গ্রেপ কোনও কারণে অজকের চেয়ে অনেক ধীর গতিতে দেখা গেছে, এ কারণেই আমি অজানা দিয়ে চলেছি।
কালোরেক

এটি আমার পক্ষে কার্যকর হয়নি - আমি যখন xargs এর জায়গায় সমান্তরাল ব্যবহার করি তখন এটি কোনও প্রক্রিয়া করে না।
কেলোরেক

'সমান্তরাল - রূপান্তর' এর আউটপুট পোস্ট করুন
ওলে ট্যাঞ্জ

@ ক্যালোরেক: গ্রেপের চেয়েও দ্রুত? আপনি গ্রিপ এবং অ্যাডকের কোন সংস্করণ ব্যবহার করছেন? আমার পরীক্ষাগুলিতে 200M ফাইলের উপস্থিতি গণনা করতে awk3.7s grep -cলাগে, 1.2 হয় এবং grep -Fc0.005 লাগে 00
থোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.