পাইথনে কোনও ফাইল বাইনারি (অ-পাঠ্য) হয় কিনা তা আমি কীভাবে বলতে পারি?
আমি পাইথনে বড় আকারের ফাইলগুলি অনুসন্ধান করছি এবং বাইনারি ফাইলগুলিতে ম্যাচগুলি পেতে থাকি। এটি আউটপুটটিকে অবিশ্বাস্যরকম অগোছালো দেখাচ্ছে।
আমি জানি যে আমি ব্যবহার করতে পারি grep -I, তবে গ্রিপ যা অনুমতি দেয় তার চেয়ে আমি ডেটা দিয়ে আরও বেশি করছি।
অতীতে, আমি কেবলমাত্র এর চেয়ে বড় চরিত্রগুলি অনুসন্ধান করেছি 0x7f, তবে utf8এবং এর মতো আধুনিক সিস্টেমে এটি অসম্ভব করে তুলেছে। আদর্শভাবে সমাধানটি দ্রুত হবে তবে কোনও সমাধান তা করবে।
grepবাইনারি ফাইলগুলি সনাক্ত করতে যে কৌশলটি নিজেই ব্যবহার করে সেগুলি নীচে জর্জে অরপিনেলের পোস্টের মতো । আপনি যদি -zবিকল্পটি সেট না করেন , এটি কেবল "\000"ফাইলের নাল অক্ষর ( ) এর জন্য স্ক্যান করবে । সহ -z, এটি জন্য স্ক্যান "\200"। যারা আগ্রহী এবং / অথবা সংশয়ী তারা 1126 এর লাইন চেক করতে পারেন grep.c। দুঃখিত, আমি উত্স কোড সহ একটি ওয়েবপৃষ্ঠাটি খুঁজে পাইনি, তবে অবশ্যই আপনি এটি gnu.org থেকে বা কোনও ডিস্ট্রোর মাধ্যমে পেতে পারেন ।
git diffএবং GNU উভয় diffএকই কৌশল ব্যবহার করে। আমি নিশ্চিত নই যে এটি এতটা প্রচলিত কারণ বিকল্পের চেয়ে এটি এত বেশি দ্রুত এবং সহজ, বা যদি এটি কেবল এই সিস্টেমে ইউটিএফ -১ files ফাইলগুলির আপেক্ষিক বিরলতার কারণে এই ব্যবহারগুলি ইনস্টল করে থাকে।