فرمان 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 هستند. اما قابلیتهای دیگری نیز در این فرمان نهفته است که میتوانید با مراجعه به راهنمای آن از آنها نیز استفاده کنید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟