কোরিউটিলগুলি যে পুরোপুরি সচেতন?


16

যখন আমি cutআজ ব্যবহার করেছি , আমি জানতে পেরেছি এটি কোনও ইউটিএফ -8 চরিত্রটিকে একটি চরিত্র হিসাবে বিবেচনা করে না, তবে 3 টি অক্ষর কারণ এটি 3 বাইট দীর্ঘ।

এটি সাধারণত অনেক সরঞ্জামের ক্ষেত্রে সত্য বলে মনে হয়।

coreutilsইউটিএফ -8 এর সংস্করণগুলি কি সচেতন?

আমার localeআউটপুট:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

এখানে যখন cutকাজ না করে

echo 哈哈 | cut -c 2-
��哈

সঠিক আউটপুট হওয়া উচিত

যদি cut -cমাল্টিবাইট অক্ষরগুলির সাথে কাজ করে।


আপনি localeঠিকভাবে সেট করেছেন ? locale(ডাব্লু / ও আর্গুমেন্ট) কমান্ড অনুরোধের পড়া কী ?
অ্যালেক্স

আমি লোকেলের সাথে আপডেট করেছি।
চাও Xu

ঠিক আছে, আপনি কি আপনার cutকমান্ড লাইনের কিছু উদাহরণ যুক্ত করতে পারেন ?
অ্যালেক্স

এটি উবুন্টু 10.04 echo ßßßß | cut -c 2-- - �ßßß(( LANG=en_US.UTF-8))
ম্যাক্সচলেপজিগ

দুঃখজনক বিষয়টি হ'ল, 3 বছর পরেও এটি উবুন্টু 13.10 তে এখনও সত্য ...
ড। মাইক

উত্তর:


13

জিএনইউ কোর্টিলগুলি ইউটিএফ -8 সাধারণভাবে বুঝতে পারে। উদাহরণ হিসেবে বলা যায় echo 哈哈 | wc -mসঠিকভাবে আউটপুট 3একটি হল UTF-8 লোকেলে (নোট যে বিকল্প -mনা -cযা ঐতিহাসিক কারণে উপায়ে জন্য বাইট)।

এটি একটি বাগ ইন cutউত্সেরcut দিকে তাকানো , cutঅক্ষরগুলিকে কেবল কার্যকর করা হয় না: -cবিকল্পটি প্রতিশব্দ হিসাবে বিবেচনা করা হয় -b

একটি workaround হ'ল awk ব্যবহার করা হয়। GNU awk UTF-8 দিয়ে ঠিক জরিমানা করেছে।

awk '{print substr($0,2,length)}'

8
কোর্টিল রক্ষণাবেক্ষণকারীদের বাগডাক্সিক হ্যাকস এবং খেলনা ইউটিলিটিগুলি যুক্ত করার চেয়ে কারও প্রয়োজন হয় না বরং এটির পরিবর্তে কোর্টিল রক্ষণাবেক্ষণকারীদের বিরক্ত করার জন্য এটি একটি বাগেরপোর্ট ফাইল করা উপযুক্ত হবে ...
আর .. গিটহাব স্টপ সহায়তা আইসিসি

3

এটি আপনার বিল্ড / সংস্করণে বাগের মতো দেখাচ্ছে coreutils। আমি এটি উবুন্টু ১০.১০-তে ম্যাভারিক মিরক্যাট-এ পুনরুত্পাদন করতে পারি তবে ফেডোরা 15 তে নয়।

[প্যাচগুলি @ হলোসিন ~] $ বিড়াল / ইত্যাদি / ফেডোরা-রিলিজ 
ফেডোরার প্রকাশ 15 (লাভলক)
[প্যাচগুলি @ হলোজিন ~] $ আরপিএম-কিউ কোর্টিলস
coreutils-8.10-2.fc15.x86_64
[প্যাচগুলি @ হলোসিন ~] $ প্রতিধ্বনি 哈哈 | কাটা-সি 2-
哈
[প্যাচগুলি @ হলোসিন ~] $ সুডো ক্রুট / এমএনটি / ম্যাভেরিক
রুট @ হলোসিন: / # গ্রেপ ডিআইআরএসটিআইবি_ডেসি / ইত্যাদি / এলএসবি-রিলিজ
DISTRIB_DESCRIPTION = "উবুন্টু ১০.১০"
রুট @ হলোসিন: / # ডিপি কেজি-কোয়েরি-এস কোর্টিলস | গ্রেপ সংস্করণ
সংস্করণ: 8.5-1ubuntu3
রুট @ হলোসিন: / # প্রতিধ্বনি 哈哈 | কাটা-সি 2-
哈

আপনি যদি coreutilsউবুন্টুও ব্যবহার করে থাকেন তবে নীচের কমান্ডটি চালিয়ে আপনি উবুন্টু প্যাকেজারগুলিকে একটি বাগ রিপোর্ট করতে পারেন :

apport-bug coreutils

আপডেট: গিলস মন্তব্যগুলিতে উল্লেখ coreutilsকরেছেন যে ফেডোরার প্রবাহিত সংস্করণটির এটি একটি বাগ । আপনি যদি তাদের কাজটি করার জন্য এটি নিজেই প্যাচ করার চেষ্টা করতে চান তবে তাদের প্যাচটি এখানে পাবেন।


আমি কেবল উত্সটির দিকে চেয়েছিলাম, এবং এটি ফেডোরা স্পষ্টতই প্যাচ করেছে এমন একটি প্রবাহের বাগ। প্রবাহের উত্সটি কেবল -cএকটি উপাধি তৈরি করে -b
গিলস

@ গিলস: আকর্ষণীয়। কেউ নিজের নিজের জন্য এটি চেষ্টা করে ঠিক করতে চাইলে আমি আমার উত্তরে ফেডোরার প্যাচটির সাথে লিঙ্ক করেছি।
প্যাচগুলি

লিঙ্কটি নষ্ট হয়ে গেছে।
corvus_192
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.