আমি অক্ষরের সংখ্যা গণনা করতে wc -c কমান্ডটি ব্যবহার করেছি তবে এটি আমাকে একটি ভুল নম্বর, অক্ষরের সংখ্যা এবং একটি উদাহরণ দেয়:
echo "k" | wc -c
এটি আমাকে 2 টি চরিত্র দেয়
তাহলে কেন 1?
আমি অক্ষরের সংখ্যা গণনা করতে wc -c কমান্ডটি ব্যবহার করেছি তবে এটি আমাকে একটি ভুল নম্বর, অক্ষরের সংখ্যা এবং একটি উদাহরণ দেয়:
echo "k" | wc -c
এটি আমাকে 2 টি চরিত্র দেয়
তাহলে কেন 1?
উত্তর:
এর জন্য সহায়তা বার্তাটি একবার দেখুন wc। -cবিকল্প অক্ষরের সংখ্যা আউট ছাপে। echoকমান্ড ডিফল্টরূপে একটি newline অক্ষর অন্তর্ভুক্ত করা হয়েছে। যখন wcনিউলাইনটি দেখে এটি এটিকে অন্য একটি চরিত্র হিসাবে গণ্য করে এবং তাই আপনার ফলাফলের অতিরিক্ত গণনা। নীচে প্রদর্শিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে আপনি এটি পেতে পারেন; -wশব্দের সংখ্যা -lগণনা করে এবং রেখার সংখ্যা গণনা করে।
echo "k" | wc -w
echo "k" | wc -l
আপনি পাইপ আউটপুট করতে wcকরতে awkসম্পর্কে newline অক্ষর ব্যতীত অক্ষরের সংখ্যা পেতে:
wc <filename> | awk '{print $3-$1}'
wcকোনও বিকল্প ছাড়াই ডিফল্ট আউটপুট এই ক্রমে নতুন লাইন অক্ষরের সংখ্যা ($ 1 থেকে awk), শব্দের সংখ্যা এবং অক্ষরের সংখ্যা ($ 3 থেকে awk) মুদ্রণ করে।
echo -n "k" | wc -c। এটি
printfপ্রায়শই পছন্দ echoহয়। এটি বিশেষভাবে জিজ্ঞাসা করা না হলে কোনও নিউলাইন মুদ্রণ করে না, সুতরাং printf "k" | wc -mদেয় 1, যেমন মুদ্রিত অক্ষরের সংখ্যা। কোনও ফাইলের প্রথম লাইনে অক্ষর গণনা করতে, কেউ যেমন করতে পারেন $(($(head -1 file | wc -m)-1))( $(())নতুন লাইন গণনা অপসারণের জন্য শেল গাণিতিক করতে এটি মোড়ানো ) বা আরও ভাল: ডাব্লুক ব্যবহার করুন এবং করুন awk 'NR==1{print length}' file।
যখন আপনি echo "k", echoকমান্ড যাই হোক না কেন আপনি এটা জিজ্ঞাসা ( "ট") প্রিন্ট আউট করতে একটি newline অক্ষর appends। আপনি এটি -nঅক্ষম করতে বিকল্পটি ব্যবহার করতে পারেন :
echo -n k | wc -c
1
সেই অদৃশ্য চরিত্রটি দেখার জন্য , আপনি ঝরনা ছড়িয়ে দিতে পারেন odবা hd:
echo k | od -t c
0000000 k \n
echo k | hd
00000000 6b 0a |k.|
echo k | od -t a -A n
k nl
-cবিকল্প একটি বাইট গণনা, না একটি অক্ষর সংখ্যা হয়