গ্রেপ: জাপানি কানজিসিযুক্ত সমস্ত লাইন সন্ধান করুন


14

একটি বিশাল ইউটিএফ -8 পাঠ্য ফাইলে, আমি সমস্ত লাইন দেখতে চাই যাতে জাপানীজ কানিজ রয়েছে ।
কি grep(বা অন্যান্য) প্রকাশটি এটি করে?

যদি আমি ভুল নই, kanjis অক্ষরের মধ্যে হয় \u4e00এবং \u4dbf

আমার কানস দেখানোর দরকার নেই , তবে সেগুলি দেখানোও কোনও বড় সমস্যা হবে না।

উত্তর:


12

জাপানিতে ব্যবহার করা হয়নি এমন হান ভাবধারার চেয়ে জাপানি কঞ্জিকে আলাদা করা (বিশাল টেবিল ব্যবহার না করে) অসম্ভব (উদাহরণস্বরূপ, চীনা বা কোরিয়ান বৈকল্পিক)।

আপনি যদি কেবলমাত্র বুনিয়াদি পরিসরে (Han u4e00 থেকে 9 u9fff) কোনও হ্যান আদর্শচিত্র সনাক্ত করতে চান তবে সেগুলি 3 বাইটে এনকোড করা থাকে, প্রথম বাইটটি সর্বদা 0xe4 এবং 0xe9 এর মধ্যে থাকে, দ্বিতীয় এবং তৃতীয় বাইট 0x80 এবং 0xbf এর মধ্যে থাকে।

এখানে দুটি অসুবিধা রয়েছে, প্রথমে আপনাকে গ্রেপকে বলতে হবে আপনি অক্ষর নয়, বাইটগুলি দেখাশোনা করতে চান; তারপরে আপনাকে পুনরায় এক্সপ্রেস এক্সপ্রেশনতে রাখতে 0xe4, 0xe9, 0x80 এবং 0xbf বাইট টাইপ করতে হবে।

আমি আবিষ্কার করেছি -পি সুইচ উভয়ই করে; এবং আপনি যে লাইনটি চান তা হ'ল:

grep -P "[\xe4-\xe9][\x80-\xbf][\x80-\xbf]"

এবং আপনি যদি কানাও চান:

grep -P "[\xe4-\xe9][\x80-\xbf][\x80-\xbf]|\xe3[\x81-\x83][\x80-\xbf]"

এটি দুর্দান্ত কাজ করে!
নিকোলাস রাউল

4

এখানে পঞ্চম সারণী অনুসারে , কঞ্জি হ'ল \u4e00এবং এর মধ্যে ক্যারাকটার\u9fff

আমার প্রয়োগটি grepইউনিকোড অক্ষরগুলি হ্যান্ডেল করতে সক্ষম বলে মনে হচ্ছে না (এটি আর্চলিনাক্সের জিএনইউ গ্রেপ ২.১৪) তবে আমরা এখনও ব্যবহার করতে পারি \x। আপনি এখানে সম্পর্কিত কোডগুলি সন্ধান করতে পারেন বা hexeditসেগুলি পেতে একটি সরঞ্জাম ব্যবহার করতে পারেন।

আমাদের আগ্রহের পরিসরের উপরের কোনও কিছুর জন্য e9 be a5"অবৈধ কোলেশন চরিত্র" ফিরিয়েছে তাই এটিই আমি নিয়ে এসেছি:

grep "["$'\xe4\xb8\x80'"-"$'\xe9\xbe\xa5'"]" file.txt

+1 এটিও কাজ করে, তবে পাবলো কিছুটা দ্রুত ছিল ...
নিকোলাস রাউল

3
এর সমতুল্য grep "[一-龥]"। সমস্যাটি হ'ল এটি স্থানীয়-নির্ভর, এবং কোলেশন বিধি ব্যবহার করে; সেটি হল, কেবলমাত্র সেই উপাদানগুলির জন্য যার জন্য বাছাইয়ের অর্ডার সংজ্ঞায়িত করা হয় তা ব্যাপ্তি বা মিলতে ব্যবহার করা যেতে পারে। -Pসুইচ শুধু লোকেল নির্বিশেষে বাইনারি ম্যাচিং করে,। একটি স্থানীয়-ভিত্তিক পদ্ধতির "অক্ষর পরিসর" এর একটি সাংস্কৃতিক সংজ্ঞা ব্যবহৃত হবে, বাইনারি-ভিত্তিক পদ্ধতির "পরিসীমা" এর একটি এনকোডিং মান সংজ্ঞা ব্যবহৃত হবে। বিশেষত বর্ণানুক্রমিক স্ক্রিপ্টগুলির জন্য আউটপুট বেশ আলাদা। (এখানে হান
আদর্শের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.