فرمان cut در لینوکس چیست و چه کاربردی دارد
لینوکس و سایر سیستم عامل‎های مبتنی بر یونیکس ابزار زیادی برای پردازش متن در خط فرمان دارند. بدون این ابزار ما مجبور خواهیم بود خروجی یک فرمان را یادداشت کرده و آن را در فرمان بعدی تایپ کنیم. فرمان cut یکی از آنها است که به ما امکان می‌دهد بخش‎هایی از متن درون یک فایل که به آن نیاز داریم را جدا کنیم.

فرمان cut که بخشی از رعایت الزامات POSIX نیز محسوب می‌شود، در چند مورد استفاده مختلف بسیار مفید است. اگر چه این فرمان به قدرتمندی سایر فرمان‎ها نیست، اما به نوبه خود بسیار کاربردی است. همان‎گونه که از نام آن مشخص است از فرمان cut برای بریدن بخشی از یک متن استفاده می‌شود. بیشترین مورد استفاده این فرمان برای بریدن اطلاعات از جداول متنی مثل یک فایل CSV یا خروجی ps است.

چگونه از فرمان cut در لینوکس استفاده کنیم؟

ساختار کلی فرمان cut به این شكل است:

cut OPTION... [FILE]...

اگر چه چنین ساختاری کمک چندانی به درک آن نمی‌کند، اما ما در ادامه به چند گزینه از آن که بیشترین مورد استفاده را دارد خواهیم پرداخت.

ابتدا ما نگاهی به استخراج متن از یک جدول با استفاده از تب‎های بین ستون‎ها خواهیم داشت.

cut -f 1,5 -d ':'/etc/passwd

این فرمان ستون‎های یک و پنج، فیلدهای user ID و توصیف کاربر را از فایل /etc/passwd استخراج خواهد کرد. در اینجا ما از سویچ –f برای مشخص کردن فیلدهای مورد نظر خود استفاده کرده‎ایم. این گزینه از کاراکتر جداکننده ویرگول برای مقادیر به شکل x-y استفاده می‌کند. در اینجا x نشانگر حد پایین و y نشانگر حد بالا است.

علاوه بر این، شما می‌توانید گزینه‎های دیگری را نیز به این فرمان اضافه کنید. گزينه –d برای مشخص کردن حائل، یا جداکننده مقادیر به کار می‌رود. فایل‎های مختلف از مقادیر مختلف برای این جداسازی استفاده می‌کنند. فایل /etc/passwd از دو نقطه (:) استفاده می‌کند، اما فایل csv از ویرگول (,) استفاده می‌کند. بنابراین بسیار مفید خواهد بود که بتوانید یک جداکننده دیگر، غیر از جداکننده تب پیش فرض را انتخاب کنید.

cut -f 1-3,7 -d ':'/etc/passwd

فرمان بالا مشخص می‌کند که فیلدهای یک تا 3 و همین‎طور فیلد هفتم در نظر گرفته شود.

توجه داشته باشید كه خروجی بعضی از برنامه‎ها همیشه هم متحد الشکل نبوده و بعضی اوقات با فیلدهای خالی همراه است که باعث می‌شود فرمان cut برخلاف انتظار رفتار کند. یک مثال در این زمینه استفاده از کاراکتر اسپیس به جای تب برای ایجاد فاصله است. چنین اتفاقی غیر معمول نیست. بعضی اوقات شما می‌توانید از طریق tr قبل از cut این موضوع را برطرف کنید.

tr -s ''''

فرمان tr یک فرمان تقدم و تاخر است که به شما اجازه می‌دهد کاراکترهای درون یک فایل را تعویض کنید. چیزی شبیه به sed، اما نه به انعطاف پذیری آن. گزینه –s در این فرمان تمام فضاهای خالی را به یک کاراکتر اسپیس خلاصه می‌کند.

بعضی اوقات لازم می‌شود که جداکننده استفاده شده در فایل ورودی را تغییر دهید. برای این کار می‌توانید از گزينه --output-delimiter استفاده کنید.

cut -f 1,5 -d ':' --output-delimiter=$'\t' /etc/passwd

در اینجا ما تب را به عنوان جداکننده تعیین کرده‎ایم. از آنجا که ما نمی‌توانیم به سادگی یک کاراکتر تب را منتقل کنیم (فشردن کلید تب معمولا به bash می‌گوید تا نقش تکمیل خودکار را ایفا کند)، ما از $’\t’  برای انتقال کاراکتر تب استفاده می‌کنیم.

اینها اصول پایه استفاده از فرمان cut هستند. اما قابلیت‎های دیگری نیز در این فرمان نهفته است که می‌توانید با مراجعه به راهنمای آن از آنها نیز استفاده کنید.

برچسب: