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