Categories: لینوکس (Linux)

دستور Grep، پیدا کردن یک متن در فایل ها

در دنیای لینوکس هر چیزی در قالب فایل می باشد و جهت کار با فایل ها دستورات متعددی وجود دارد. کانفیگ فایل ها، لاگ فایل ها و… نمونه ای از فایل های متنی هستند که با استفاده از دستوراتی نظیر cat, head, tail, more و… می توان محتویات آنها را مشاهده کرد. به دلیل حجیم بودن این فایل ها، کار کردن با دستوراتی مانند cat دشوار خواهد بود و نیازمند دستوراتی هستیم که قابلیت کار با پترن ها، جستجو و… را داشته باشند. یکی از این ابزارهای کاربردی grep می باشد که برگرفته از عبارت Global Regular Expression Print است. وظیفه این دستور جستجوی یک عبارت و یا الگو بین فایل یا فایل‌ها (یا رشته‌ها) می‌باشد. این دستور آپشن های فراوانی دارد و ما فقط در این بخش به موارد کاربردی تر در حوزه VoIP خواهیم پرداخت.

مثال: می خواهیم بررسی کنیم آیا سیپ ترانکی با نام shatel_tr در فایل sip_additional.conf وجود دارد؟

grep “shatel_tr” /etc/asterisk/sip_additional.conf

اگر در فایل فوق عبارت shatel_tr وجود داشته باشد، آن را در خروجی نمایش می دهد و در غیراینصورت عبارتی نمایش داده نمی شود.

در این مثال در فایل sip_additional.conf کانتکستی به نام shatel_tr وجود دارد. پس grep آن را پیدا کرده و در خروجی سطر مربوطه را نمایش می دهد.

نکته: به صورت پیش فرض grep به حروف کوچک و بزرگ حساس می باشد. در صورتی که بخواهیم این حساسیت در نظر گرفته نشود، می توانیم از آپشن i استفاده کنیم.

grep -i “shatel_tr” /etc/asterisk/sip_additional.conf

نکته: فرض کنید دنبال عبارت خاصی در لاگ فایل ها هستید، استفاده از مثال فوق یکی از روش های سودمند خواهد بود.

مثال: اکنون که می دانیم در فایل فوق context ای به نام shatel_tr وجود دارد، می خواهیم شماره خط آن را بدست آوریم.

grep -n “shatel_tr” /etc/asterisk/sip_additional.conf

تصویر فوق بیانگر این است که این context در خط ۲۲۱ شروع شده است.

نکته: فرض کنید در کانفیگ فایل چند صد خطی سرویسی مانند آپاچی دنبال پارامترهای خاصی می گردید تا با ویرایشگرهای متنی مستقیما سراغ آن خطوط بروید. یکی از روش های سودمند استفاده از دستور مثال فوق می باشد.

مثال: به منظور فرآیند ممیزی می خواهیم بررسی کنیم چه تعداد داخلی SIP پسورد Admin110@ دارند.

grep -c “secret=Admin110@” /etc/asterisk/sip_additional.conf

در خروجی فوق عدد ۳ نمایش یافته است. پس ۳ اکانت سیپ پسورد Admin110@ دارند.

نکته: فرض کنید در لاگ ها فایل دنبال تعداد تلاش ها برای اتصال از یک IP خاص هستید، استفاده از دستور مثال فوق برای شما کاربردی خواهد بود.

مثال: اکنون که متوجه شدیم ۳ سیپ اکانت پسورد Admin110@ دارند، می خواهیم ابتدای context های آن ها را مشاهده کنیم.

grep -C 2 “secret=Admin110@” /etc/asterisk/sip_additional.conf

با دستور فوق ۲ خط قبل و ۲ خط بعد از عبارت match شده را مشاهده می کنیم.

مثال: سیپ ترانکی با نام shatel_tr داریم. می خواهیم ۹ خط ابتدای context آن را مشاهده کنیم.

grep -A 9 “shatel_tr” /etc/asterisk/sip_additional.conf

مثال: در دایرکتوری /etc/asterisk/ هستیم. می خواهیم ببینیم در کدام یک از فایل های sip.conf , sip_additional.conf و sip_custom.conf کانتکستی با نام shatel_tr وجود دارد.

grep “shatel_tr” sip.conf sip_custom.conf sip_additional.conf

در این خروجی بیان می شود که این context در فایل sip_additional.conf وجود دارد.

“سید محمد سجاد تکیه”
مدرس و مجری پروژه های شبکه های کامپیوتری، VoIP و IoT

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

Share
Published by
حامد کوه فلاح

Recent Posts

۱۰ محصول برتر Open Source SaaS برای متخصصین VoIP و IT: انتخابی هوشمندانه برای کسب‌وکارها

Open Source Software نقش مهمی در توسعه نرم‌افزارهای SaaS (نرم‌افزار به عنوان سرویس) داشته است.…

14 ساعت ago

SaaS چیست؟ بررسی جامع، مزایا

SaaS چیست؟ بررسی جامع نرم‌افزار به‌عنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدل‌های…

5 روز ago

Softswitch چیست؟ ستون اصلی شبکه‌های VoIP و نحوه طبقه‌بندی آن‌ها

در دنیای ارتباطات راه دور و شبکه‌های VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرم‌افزاری…

1 هفته ago

مدیریت Asterisk از طریق کنسول مثل یک حرفه ای: ابزارها و نکات

Asterisk به‌عنوان یکی از محبوب‌ترین پلتفرم‌های تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…

2 هفته ago

آشنایی با مفاهیم FXS و FXO در سیستم‌های VoIP

در سیستم‌های تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…

2 هفته ago

Devv.ai: موتور جستجوی هوشمند برای توسعه‌دهندگان و متخصصان IT

در دنیای پیچیده فناوری اطلاعات و برنامه‌نویسی، یافتن سریع اطلاعات دقیق و ابزارهای موردنیاز از…

2 هفته ago