ابزارهای grep، awk و sed

ابزارهای قدرتمند پردازش متن در لینوکس: grep، awk و sed

در دنیای لینوکس، سه ابزار grep، awk و sed مانند سه تفنگدار قدرتمند برای پردازش و تحلیل متن عمل می‌کنند. این ابزارها با ترکیب قابلیت‌های منحصربه‌فرد خود، انعطاف‌پذیری بی‌نظیری در مدیریت فایل‌های متنی ارائه می‌دهند.


grep: شکارچی متن

ابزار grep برای جستجوی الگوهای متنی در فایل‌ها یا خروجی دستورات استفاده می‌شود. برخی قابلیت‌های کلیدی آن شامل:

  • جستجوی سریع با استفاده از عبارات منظم (Regex)
  • نمایش خطوط منطبق با الگو یا شماره خطوط
  • جستجوی بازگشتی در دایرکتوری‌ها
  • فیلتر کردن خروجی دستورات دیگر
سوییچ پرکاربرد توضیحات
-i عدم حساسیت به حروف بزرگ و کوچک
-v نمایش خطوطی که با الگو مطابقت ندارند
-n نمایش شماره خطوط

awk: زبان برنامه‌نویسی برای پردازش متن

awk یک زبان برنامه‌نویسی کامل برای پردازش فایل‌های متنی است که بر اساس خطوط و فیلدها عمل می‌کند. ویژگی‌های برجسته آن:

awk می‌تواند داده‌ها را تجزیه، تحلیل، فیلتر و حتی فرمت کند. این ابزار برای گزارش‌گیری و تبدیل داده‌ها ایده‌آل است.

مثال ساده از awk برای نمایش ستون دوم یک فایل با جداکننده فاصله:

awk '{print $2}' filename

sed: ویرایشگر جریان‌های متنی

ابزار sed (مخفف Stream Editor) برای ویرایش غیرتعاملی فایل‌های متنی طراحی شده است. کاربردهای اصلی آن شامل:

  1. جایگزینی متن در فایل‌ها
  2. حذف یا درج خطوط خاص
  3. فیلتر کردن و تبدیل محتوا
  4. انجام عملیات ویرایشی پیچیده با اسکریپت‌ها

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


ترکیب ابزارها برای قدرت بیشتر

قدرت واقعی این ابزارها زمانی آشکار می‌شود که آن‌ها را با هم ترکیب کنیم. مثلاً برای یافتن خطوط حاوی کلمه "error" در لاگ فایل و نمایش 5 خط بعد از هر مورد:

grep -A5 "error" logfile | awk '{print $1,$3}' | sed 's/old/new/g'

این ابزارها با وجود سادگی ظاهری، قابلیت‌های بی‌نظیری در پردازش متن ارائه می‌دهند و تسلط بر آنها هر مدیر سیستم یا توسعه‌دهنده‌ای را به سطح جدیدی از کارایی می‌رساند.