پرش به محتویات

درسنامه ۲-۵: برش متن با cut

cut برای جداکردن ستون‌ها یا کاراکترهای خاص از هر خط استفاده می‌شود.

بر اساس جداکننده (delimiter)

# فرض: فایل CSV با جداکنندهٔ کاما
cut -d, -f1 names.csv        # ستون اول
cut -d, -f1,3 data.csv       # ستون‌های 1 و 3
cut -d: -f1 /etc/passwd      # نام کاربری‌ها

بر اساس موقعیت کاراکتر

cut -c1-10 report.txt        # کاراکترهای 1 تا 10 هر خط

نکته: اگر فاصله‌ها نامنظم‌اند، ابتدا فاصله‌های پیاپی را یک‌تایی کنید:

tr -s ' ' < file.txt | cut -d' ' -f2

تمرین کوتاه

  • از یک فایل نمونه، ستون‌های دلخواه را استخراج کنید.
  • نام کاربری‌ها را از /etc/passwd بیرون بکشید و در فایلی ذخیره کنید.

نکات و مثال‌های بیشتر

  • نادیده‌گرفتن خط‌های خالی قبل از برش:
grep -v '^$' data.txt | cut -d',' -f2
  • برش بازه‌ها و چند ستون ترکیبی:
cut -d',' -f1-2,5 report.csv
  • وقتی جداکننده تب است:
cut -f1,3 metrics.tsv

خطاهای رایج

  • استفاده از cut -d ' ' روی متن‌هایی با فاصله‌های نامنظم؛ ابتدا فاصله‌ها را یک‌دست کنید (tr -s ' ').
  • فراموشی نقل‌قول در جداکننده‌هایی با کاراکترهای خاص شل.