دستور wc در لینوکس (شمارش تعداد کلمات در فایل)
دستور 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 file1.txt file2.txt file3.txt
۳ خط اول خروجی برای تعداد خطوط، کلمات و بایت های هر فایل و خط چهارم (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
اما فرق بایت و کاراکتر چیست؟
زمانی که در فایل متنی موردنظر شما از رمزگذاری تک بایتی مثل 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 در لینوکس برای محاسبه تعداد خطوط، کلمات، بایت ها و کاراکترهای فایل یا فایل های موردنظر استفاده می شود و می تواند نقش مهمی در کارهای پردازش متنی داشته باشد.