برش بخش ها (Remove Section (cut))
می خواهی از هر خط فقط بخش های خاصی را ببینی؟ دستور «cut» برای برش بخش هاست. «بخش (Field)» یعنی قسمت های جداشده با جداکننده. مثل اسم و سن در یک فایل.
آشنایی سریع با cut
cut از هر خط فایل، فیلدهای انتخابی را جدا می کند. مثال ها از فایل example_data.txt استفاده می کنند.
Kai \tRefsnes\t30,Norway
Robin\tSmith\t25,Denmark
Sienna\tDavis\t40,Germany
استفاده پایه
برای گرفتن فیلد اول، از -f1 استفاده کن. پیش فرض جداکننده تب است.
cut -f1 example_data.txt
Kai
Robin
Sienna
گزینه های مهم
-d: تعیین جداکننده فیلدها.-f: انتخاب شماره فیلدها.--complement: نمایش همه فیلدها بجز انتخاب شده ها.
تعیین جداکننده با -d
اگر فیلدها با کاما جدا شده اند، جداکننده را کاما بده.
cut -d',' -f1 example_data.txt
Kai\tRefsnes\t30
Robin\tSmith\t25
Sienna\tDavis\t40
انتخاب چند فیلد با -f
می توانی بازه فیلد بدهی. اینجا فیلدهای 1 تا 2 می آید.
cut -f1-2 example_data.txt
Kai\tRefsnes
Robin\tSmith
Sienna\tDavis
نمایش مکمل با --complement
با این گزینه، همه فیلدها جز انتخاب شده ها چاپ می شوند.
cut --complement -f1 example_data.txt
Refsnes 30,Norway
Smith 25,Denmark
Davis 40,Germany
استخراج پیشرفته فیلد
می توانی بازه فیلدهای میانی را هم بگیری. اینجا فیلدهای 2 تا 3 آورده می شوند.
cut -f2-3 example_data.txt
Refsnes 30,Norway
Smith 25,Denmark
Davis 40,Germany
اشتباهات رایج و رفع ایراد
هشدار: جداکننده باید یک کاراکتر باشد. شماره گذاری فیلد از 1 شروع می شود. اگر خروجی اشتباه بود، جداکننده و شماره فیلدها را دوباره چک کن.
تمرین گام به گام
- یک فایل متنی مانند مثال بساز.
- با
-f1فقط نام ها را چاپ کن. - جداکننده را با
-d','تغییر بده. - با
-f1-2دو فیلد اول را بگیر. - با
--complementبقیه فیلدها را ببین.
بعد از cut، بخش ویرایشگر جریان (sed) را ببین. همچنین مرتب سازی (sort) برای نظم دادن خروجی ها عالی است.
جمع بندی سریع
- cut فیلدها را جدا و چاپ می کند.
- پیش فرض جداکننده تب است.
- -d جداکننده را تغییر می دهد.
- -f فیلدها را انتخاب می کند.
- --complement بقیه فیلدها را نشان می دهد.