গ্রেপ ব্যবহার করে কোনও ফাইলের নিয়মিত প্রকাশের চূড়ান্ত মিলের সেরা উপায় কী?
এছাড়াও, শুরুটির পরিবর্তে ফাইলটির শেষ থেকে গ্রেপিং শুরু করা এবং এটি প্রথম ম্যাচটি খুঁজে পেলে থামানো সম্ভব?
গ্রেপ ব্যবহার করে কোনও ফাইলের নিয়মিত প্রকাশের চূড়ান্ত মিলের সেরা উপায় কী?
এছাড়াও, শুরুটির পরিবর্তে ফাইলটির শেষ থেকে গ্রেপিং শুরু করা এবং এটি প্রথম ম্যাচটি খুঁজে পেলে থামানো সম্ভব?
উত্তর:
আপনি চেষ্টা করতে পারেন
grep pattern file | tail -1
অথবা
tac file | grep pattern | head -1
অথবা
tac file | grep -m1 pattern
grep -n
প্রকৃত ফাইলটিতে আমি লাইন নম্বর ( ) পেতে চাইলে যুক্ত হওয়া সীমাবদ্ধতার সাথে আমার মনে হয় যে আমি tac
কিছু বিয়োগ করতে না চাইলে বেশ কিছুটা এড়িয়ে চলতে হয়েছিল wc -l
। অন্যথায় tac
সাথে grep -m1
অনেক বোঝা যায়।
grep
প্রথম ম্যাচের পরে কাজ করা বন্ধ হয়ে যাবে। ছাড়াই -m 1
, grep
প্রথমে ফাইলটিতে সমস্ত মিলে যাওয়া নিদর্শনগুলি খুঁজে পাবে , তারপরে head
কেবল প্রথমটি দেখাবে - খুব কম দক্ষ। ডেনিস, দয়া করে এটি একটি পৃথক উত্তরে পোস্টিং বিবেচনা করুন!
ইউনিক্স / লিনাক্স / ম্যাক / সাইগউইনে বিশাল পাঠ্য ফাইলগুলির সাথে কারও জন্য কাজ করা। যদি আপনি উইন্ডোজটিতে লিনাক্স সরঞ্জামগুলি সম্পর্কে এইটি চেক আউট ব্যবহার করেন: https://stackoverflow.com/questions/3519738/ কি-is-the-best-way-to-use-linux-utilities-und-windows ।
ভাল পারফরম্যান্স পেতে কেউ এই ওয়ার্কফ্লো অনুসরণ করতে পারে:
zq
প্যাকেজ থেকে সূচী ফাইলটি জিজ্ঞাসা করুন ।এর গিথুব রেডমে থেকে উদ্ধৃতি:
একটি সূচক তৈরি করা হচ্ছে
জিনডেক্সকে জানাতে হবে যে প্রতিটি লাইনের কোন অংশটি সূচককে গঠন করে। এটি নিয়মিত প্রকাশের মাধ্যমে, ক্ষেত্রের মাধ্যমে বা বাহ্যিক প্রোগ্রামের মাধ্যমে প্রতিটি লাইন পাইপ করে করা যেতে পারে।
ডিফল্টরূপে জিনডেক্স file.gz.zindex এর সূচক তৈরি করে যখন file.gz সূচককে বলা হয়।
উদাহরণ:
একটি সংখ্যা নিয়মিত প্রকাশের সাথে মিল রেখে লাইনে একটি সূচক তৈরি করুন। ক্যাপচার গোষ্ঠীটি সেই অংশটিকে নির্দেশ করে যা সূচী করা উচিত এবং অপশনগুলি দেখায় যে প্রতিটি লাইনের একটি অনন্য, সংখ্যাসূচক সূচক রয়েছে।
$ zindex file.gz --regex 'id:([0-9]+)' --numeric --unique
উদাহরণ: একটি সিএসভি ফাইলের দ্বিতীয় ক্ষেত্রে একটি সূচক তৈরি করুন:
$ zindex file.gz --delimiter , --field 2
উদাহরণ:
ডকুমেন্টের রুটের ক্রিয়া অ্যারেতে আইটেমগুলির মধ্যে একটি জেএসএন ফিল্ড অর্ডার আইড.আইডিতে একটি সূচক তৈরি করুন (জেকিউ প্রয়োজন)। জেকিউ কোয়েরিটি সমস্ত অর্ডারআইডি.আইডির একটি অ্যারে তৈরি করে, তারপরে জ্যাকের সাথে পাইপযুক্ত প্রতিটি স্বতন্ত্র রেখা আউটপুটের একক লাইন তৈরি করে তা নিশ্চিত করার জন্য একটি স্পেসের সাথে যোগ দেয়, একাধিক ম্যাচ ফাঁক দিয়ে পৃথক করে (যা ডিফল্ট বিভাজক)।
$ zindex file.gz --pipe "jq --raw-output --unbuffered '[.actions[].orderId.id] | join(\" \")'"
সূচকের অনুসন্ধান করা হচ্ছে
জেডকিউ প্রোগ্রামটি একটি সূচককে জিজ্ঞাসা করতে ব্যবহৃত হয়। এটি সংকুচিত ফাইলের নাম এবং প্রশ্নের একটি তালিকা দেওয়া আছে। উদাহরণ স্বরূপ:
$ zq file.gz 1023 4443 554
লাইন নম্বর দ্বারা আউটপুট করাও সম্ভব, তাই কোনও ফাইল থেকে 1 এবং 1000 রেখা মুদ্রণ করতে:
$ zq file.gz --line 1 1000
আমি সর্বদা বিড়াল ব্যবহার করি (তবে এটি এটি আরও দীর্ঘতর করে তোলে): cat file | grep pattern | tail -1
আমি কলেজের আমার লিনাক্স অ্যাডমিন কোর্স শিক্ষককে দোষী করব যারা বিড়ালদের ভালবাসে :))))
- কোনও ফাইল গ্রেপ করার আগে আপনাকে প্রথমে ক্যাট লাগাতে হবে না। grep pattern file | tail -1
এবং আরও কার্যকর।
cat
ফাইলটি দরকার নেই এবং এটিতে পাইপ করা প্রয়োজন grep
। আপনি কেকেমক্সের উত্তরে যেমন grep
সরাসরি ফাইলটি অনুসন্ধান করতে পারেন grep pattern file
(এবং তারপরে tail
শেষ ফলাফলটি ফেরত দিতে ব্যবহার করতে পারেন)।
tac file | grep -m 1 pattern