شما برای مطالعه این مقاله فقط 5 دقیقه وقت نیاز دارید

wc-command-in-linux
دسته بندی : آموزش لینوکس

دستور wc در لینوکس (شمارش تعداد کلمات در فایل)

5/5 - (1 امتیاز)

دستور wc در لینوکس مخفف word count است و برای شمارش تعداد خطوط، کلمات، بایت ها و کاراکترهای موجود در متن یا فایل متنی موردنظر استفاده می شود.

دستور wc متن ورودی را در قالب متن ساده یا فایل (ها) متنی دریافت می کند و سپس، با انجام یک سری محاسبات، تعداد کلمات، خطوط و کاراکتر را در ستون های جدا به شما نشان می دهد که این کار در زمینه هایی مثل پردازش و تحلیل سریع تر اطلاعات متنی کاربرد دارد.

پیش نیازهای استفاده از دستور wc در لینوکس

  • سیستم یا سرور مجهز به لینوکس
  • دسترسی به ترمینال
  • نصب بودن دستور wc 

این دستور  بخشی از پکیج ابزارهای اصلی GNU است و به طور پیش فرض در اکثر توزیع های لینوکسی نصب است ولی محض احتیاط بهتر است دستور زیر را اجرا کنید:

wc --version

با دیدن شماره نسخه wc در لینوکس می توانید از نصب بودن آن در سیستم خود مطمئن شوید.

ولی اگر به هر دلیلی متوجه شدید که سیستم شما مجهز به این ابزار نیست (که بسیار نادر است)، ابتدا باید آن را نصب کنید.

دستور نصب wc در توزیع های مبتنی بر دبیان مثل اوبونتو

sudo apt-get install coreutils

دستور نصب wc در توزیع های مبتنی بر redhat مثل CentOS و فدورا

sudo yum install coreutils

یا

sudo dnf install coreutils

دستور نصب wc در آرچ لینوکس

sudo pacman -S coreutils

دستور نصب wc در OpenSUSE

sudo zypper install coreutils

اگر می خواهید صاحب یک سرور لینوکس شوید که از قدرت و کارایی لازم برای اجرای دستورات تحلیلی و پردازشی مثل wc برخوردار باشد، می توانید به صفحه خرید سرور لینوکس مراجعه کنید و پلن ایده آل برای پروژه خود را سفارش دهید.

سینتکس دستور wc در لینوکس

سینتکس پایه دستور wc به صورت زیر است:

wc [Options] [Files]

با Options می توانید رفتار دستور wc را به شکل دلخواه تنظیم کنید.

Files هم اسم یا مسیر فایل هایی است که قصد دارید تعداد خطوط، کلمات و … آن را ببینید.

آپشن های دستور wc

آپشنکاربرد
l-نمایش تعداد خطوط
w-نمایش تعداد کلمات
c-نمایش تعداد بایت ها
m-نمایش تعداد کاراکترها
L-چاپ طول طولانی ترین خط موجود در فایل
version–نمایش نسخه دستور

برای کسب اطلاعات بیشتر در مورد دستور wc می توانید از دو دستور زیر کمک بگیرید:

wc --help

man wc

مثال های کاربردی از دستور wc در لینوکس

نمایش تعداد خطوط، کلمات و بایت های فایل

اگر دستور wc را بدون هیچ آپشنی اجرا کنید، به ترتیب از چپ به راست، تعداد خطوط، کلمات و بایت های فایل را در خروجی به شما نشان می دهد:

wc file.txt

دستور wc در لینوکس با ۱ فایلبرای اینکه تعداد خطوط، کلمات و بایت های چند فایل را به صورت یکجا ببینید، باید اسم آن ها را به ترتیب در دستور لحاظ کنید:

wc file1.txt file2.txt file3.txt

دستور wc در لینوکس با ۱ فایل۳ خط اول خروجی برای تعداد خطوط، کلمات و بایت های هر فایل و خط چهارم (total)، مجموع این ۳ مقادیر را نشان می دهد.

البته، می بینید که در دستورات بالا فقط اسم فایل ها را لحاظ کردیم چون ترمینال در همان مسیر فایل ها قرار داشت و دیگر نیازی به وارد کردن مسیر فایل یا فایل ها نبود.

اگر در یک مسیر دیگر هستید و می خواهید این مقادیر را برای فایل موجود در یک مسیر دیگر محاسبه کنید، باید مسیر کامل فایل ها را در دستور لحاظ کنید:

wc /home/user/file1.txt /home/user/documents/file2.txt /var/log/file3.log

مشاهده تعداد خطوط موجود در فایل

اگر فقط می خواهید تعداد خطوط موجود در فایل یا فایل های موردنظر را ببینید، حتماً باید آپشن l را در دستور لحاظ کنید:

wc -l file.txt

مشاهده تعداد کلمات موجود در فایل

اگر به خاطر تحلیل های متنی و آماری، قصد دارید فقط از تعداد کلمات موجود در فایل موردنظر مطلع شوید، می توانید از آپشن w استفاده کنید:

wc -w file.txt

مشاهده تعداد بایت های موجود در فایل

برای این که فقط تعداد بایت های فایل را بررسی کنید، باید از آپشن c استفاده کنید:

wc -c file.txt

مشاهده تعداد کاراکترهای موجود در فایل

برای بررسی تعداد کاراکترهای یک فایل، می توانید از آپشن m استفاده کنید:

wc -m file.txt

اما فرق بایت و کاراکتر چیست؟

کلیک کنید  3 روش آموزشی اتصال دامنه به سرور مجازی لینوکس

زمانی که در فایل متنی موردنظر شما از رمزگذاری تک بایتی مثل ASCII استفاده شده باشد، کاربرد دو آپشن c و m یکسان است.

اما اگر فایل متنی شما حاوی کاراکترهای غیرانگلیسی مثل فارسی و عربی باشد، قضیه فرق می کند چون بعضی از کاراکترهای مربوط به این زبان ها بیش از یک بایت هستند و در شمارش بایت ها و کاراکترها اختلاف وجود خواهد داشت.

اطلاع از طول طولانی ترین خط موجود در فایل

هر خط حاوی مجموعه ای کاراکترها است و اگر می خواهید طول مربوط به طولانی ترین خط را پیدا کنید، باید از آپشن L استفاده کنید:

wc -L file.txt

اگر می خواهید طول طولانی ترین خط فایل های متنی موجود در مسیر فعلی را ببینید، می توانید از دستور زیر استفاده کنید:

wc -L *.txt

این ها چند مثال ابتدایی از دستور wc بودند ولی کاربرد این دستور به این چند مورد محدود نمی شود. این دستور با سایر دستورات لینوکس قابل ترکیب است و اینجاست که می توانید به کاربردهای بیشتر آن برسید.

محاسبه تعداد فولدرها یا فایل های موجود در یک دایرکتوری

برای این کار کافیست دستور ls و wc را با هم ترکیب کنید.

ls /home/user/documents | wc -l

این دستور، تعداد  فایل‌ها و دایرکتوری‌های موجود در دایرکتوری home/user/documents/ را می شمارد و به شما نشان می دهد.

مشاهده تعداد کلمات تمام فایل های متنی موجود در مسیر فعلی ترمینال

برای این کار می توانید از دستور cat و wc به صورت ترکیبی استفاده کنید:

cat *.txt | wc -w

دستور cat محتوای تمام فایل های متنی را به دستور wc پایپ می کند و wc هم تعداد کلمات آنها را محاسبه می کند و در خروجی نشان می دهد.

ترکیب دستور echo با wc

اگر می خواهید ورودی لازم برای wc را به صورت دستی وارد کنید، می توانید از دستور echo برای تزریق ورودی به wc کمک بگیرید:

echo "Hello, world!" | wc

این دستور، تعداد خطوط، کلمات و بایت های متن موردنظر را در خروجی نشان می دهد.

محاسبه تعداد خطوط موجود در فایل های یک دایرکتوری (به صورت بازگشتی)

اگر دایرکتوری موردنظر شما، زیردایرکتوری های تو در تو دارد و می خواهید تعداد خطوط تمام فایل های موجود در این مسیر را ببینید، باید زیر دایرکتوری ها را هم به صورت بازگشتی باز کنید.

برای این کار می توانید از ترکیب دستور find و wc استفاده کنید:

find /path/to/directory -type f -exec wc -l {} +

این دستور همه فایل های موجود در دایرکتوری موردنظر و زیردایرکتوری های آن را پیدا می کند و wc -l را روی تمام آنها اجرا می کند.

این ها مثال های کاربردی از دستور wc بودند که با استفاده از آنها می توانید نحوه کار با wc را یاد بگیرید. حالا نوبت شماست که از قدرت این دستور به نفع خود استفاده کنید.

سخن آخر

دستور wc در لینوکس برای محاسبه تعداد خطوط، کلمات، بایت ها و کاراکترهای فایل یا فایل های موردنظر استفاده می شود و می تواند نقش مهمی در کارهای پردازش متنی داشته باشد.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید