تاریخ انتشار: دوشنبه 1397/05/22 - 18:42
کد خبر: 277708

فرمان 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=$' ' /etc/passwd

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

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

منبع: fossbytes

مرتبط ها
نظرات
حداکثر تعداد کاراکتر نظر 200 ميياشد
نظراتی که حاوی توهین یا افترا به اشخاص، قومیت‌ها، عقاید دیگران باشد و یا با قوانین جمهوری اسلامی ایران و آموزه‌های دینی مغایرت داشته باشد منتشر نخواهد شد - لطفاً نظرات خود را با حروف فارسی تایپ کنید
معرفی کسب و کارها
هشدار دادگستری تهران درباره پیامک‌های جعلی خدمات دولتی
پیش بینی حضور ۱۵ میلیون نفر در مراسم تشییع رهبر شهید
دیدار فرمانده ارتش پاکستان با پزشکیان
نقش یک ویدئو در تساوی ایران با بلژیک/ نسل باتجربه در انتظار اتفاق بزرگ
مسیرهای برگزاری مراسم تشییع رهبر شهید در مشهد و تهران
تیم هاکی روی یخ بانوان ایران نایب قهرمانی جام آسیایی روسیه شد
بازخوانی تاریخ کربلا؛ سفری به عمق واقعه عاشورا
علی‌اکبر(ع)؛ الگویی ماندگار برای تربیت دینی و ولایت‌مداری جوانان
سن یک دنباله دار قدیمی تخمین زده شد
همدستی متا با اسرائیل در سانسور محتوای جنگ علیه ایران
تعطیلی ۱۳ و ۱۴ تیر استان تهران و ۱۵ تیر کل کشور جهت تشییع امام شهید
ثبت‌نام ایجاد و ترمیم سابقه تحصیلی از امروز آغاز شد
فیلم | وجدانی همت: باید این مقاومت و سلحشوری را به نسل بعدی منتقل کنیم
اعلام جزئیات برگزاری امتحانات دانشجویان تحصیلات تکمیلی دانشگاه آزاد در شهر محل سکونت
مکتب عاشورا برای مرثیه و مویه نیست
مصاحبه مجازی داوطلبان دکتری تخصصی ۱۴۰۵ دانشگاه آزاد از شنبه ۶ تیر آغاز می‌شود
بسیج دانشجویی امیرکبیر: نمایندگان خود را به تراز ملت مبعوث برسانند/ در مقابل به توپ بستن مجلس ساکت ننشینید
مذاکرات زیر شبح تهدید ساده‌لوحانه است
تا شکست کامل آمریکا و صهیونیست‌ها، وحدت و مقاومت ادامه دارد
از امروز خیابان کمیته نظارت برمذاکرات است +عکس
تشکل‌های دانشجویی یزد: تفاهم اسلام‌آباد در پشت پرده شکل گرفت/نمایندگان نیز بی‌اطلاع بودند
آمار پاسخگویی وزارت علوم و دانشگاه‌ها به شکایات
توافق جدید برای ورود دانش بنیان‌ها به نظام بیمه سلامت
مهلت ثبت درخواست میهمانی و انتقال دانشجویان شاهد و ایثارگر تمدید شد
ثبت‌نام ایجاد و ترمیم سابقه تحصیلی از امروز آغاز شد
اعلام جزئیات برگزاری امتحانات دانشجویان تحصیلات تکمیلی دانشگاه آزاد در شهر محل سکونت
مصاحبه مجازی داوطلبان دکتری تخصصی ۱۴۰۵ دانشگاه آزاد از شنبه ۶ تیر آغاز می‌شود
تعریف ۲۰۰۰ پایان‌نامه با مشارکت پژوهشگران ایرانی و استادان خارجی
۵ راهکار برای نجات آموزش عالی؛ از اصلاح ذی‌نفع هراسی تا راه‌اندازی اتاق فکر مسائل بنیادین
مهلت پنج‌روزه برای رفع نقص مدارک فلوشیپ ۱۴۰۵
مدارک مورد پذیرش دکتری تخصصی پزشکی اعلام شد
تفاهم‌نامه ایرانداک و سازمان بازرسی برای ارتقای سلامت علمی کشور
دفترچه انتخاب رشته آزمون کاردانی به کارشناسی اصلاح شد
امتحانات حضوری ارشد و دکتری دانشگاه آزاد استان تهران به تعویق افتاد
زمان برگزاری برخی امتحانات دانشگاه علم و صنعت تغییر کرد
امکان برگزاری امتحانات در شهر محل سکونت دانشجویان فراهم شد
مهلت ثبت‌نام ترم تابستانی دانشجویان علوم پزشکی تمدید شد
اعزام ۷۱ پژوهشگر ایرانی به مراکز علمی برتر چین
امتحانات پایان‌ترم تحصیلات تکمیلی دانشگاه آزاد حضوری شد
زمان مصاحبه‌های آزمون دکتری سال ۱۴۰۵ تغییر کرد
مهلت ثبت‌نام پذیرش کاردانی به کارشناسی‌ سال ۱۴۰۵ تمدید شد
تغییر زمان برگزاری امتحانات پایان نیمسال دوم دانشگاه خواجه نصیر
نظرسنجی
به نظر شما توافق با آمریکا به پایان مخاصمات می‌انجامد یا دوباره شاهد یک درگیری تمام عیار خواهیم بود؟


مشاهده نتایج
go to top