سفر به دنیای Ubutnu؛ روز هفدهم

بابک فخریلو

در ادامه ی بحثی که از سفر روز قبل خود درباره ی بررسی محیط command line سیستم عامل Ubuntu داشتیم، امروز می خواهیم به فرماین ‘man’ و ‘grep’ بپردازیم. این فرامین، قدرت قابل توجهی دارند، و از جمله ی فرمان های بسیار پر کاربرد در Ubuntu هستند.

در سفر روز گذشته ی خود به ‘grep’ پرداختیم. Keir Thomas در Linux Nitty Gritty: Working at the Ubuntu Command-Line Prompt ، این طور شرح می دهد که ‘grep’ سرواژه ی عبارت «global regular expression print» است. خوب این عبارت به اندازه ی کافی گویا نیست، بنابراین برای توضیح بهتر آن می توان این طور گفت: «واژه ی ‘grep’، مترادف با جست و جو کردن است؛ ‘grep’ کردن یک فایل، یعنی جست و جو داخل آن.»

برای این که بیشتر با جزئیات این فرمان آشنا شوم، از صفحه ی man استفاده کردم. ‘Man’ کوته واژه ای برای عبارت manual است، و در حقیقت هر فرمان و برنامه ای در linux یک man page دارد. کافی است Terminal را باز کرده، و عبارت زیر را وارد کنید :

Man <command name>

بدین ترتیب راهنمای استفاده از آن دستور نمایش داده  می شوند. البته نیازی به گذاشتن <> نیست، صرفا برای مشخص بودن دستور آن را نوشتم.

مثلا وارد کردن ‘man grep’ صفحه ی man برای فرمان ‘grep’ را، همراه با جزئیات بسیار زیاد در مورد syntax و استفاده ی درست از آن دستور، و نیز switche ها و filter هایی که می توان با ‘grep’، برای سفارشی سازی نتایج به کار برد، باز می کند.

من خودم طرف دار توابع جست و جو هستم. شاید به نظر احمقانه برسد، اما به همان دلیل که filed Search (ویژگی که امکان یک جست و جوی کلی را تنها با یک درخواست فراهم کرده، و باعث صرفه جویی در وقت می شود) در منوی شروع Windows 7 را دوست دارم، به همان دلیل به Applications and Files & Folders lenses علاقه دارم. در Windows 7 ، به ندرت زمانم را صرف جست و جوی فایل ها و برنامه ها می کنم. آنچه را که دنبالش می گردم در search field تایپ می کنم، و سریع به آن دسترسی پیدا می کنم.

با دانستن این ویژگی ها، علاقه ی زیادی به بررسی قابلیت های ‘grep’ داشتم. برنامه ی Terminal را باز کردم، و به پوشه ای رفتم که مستندات زیادی را در آن ذخیره کرده بودم. می خواستم تمام فایل هایی که به هر شکلی عبارت ‘Google’ را در خود داشتند، جست و جو کنم. بنابراین ‘grep Google*’ را تایپ کردم. اگر می خواستم فایل خاصی را جست و جو کنم، باید به جای ستاره، نام فایل را در آن می نوشتم، و اگر چیزی که دنبال اش بودم، دو واژه ای بود، باید آن را داخل دو علامت نقل و نقول (‘) جای می دادم.

بعد از تایپ کردن دستور، هیچ چیزی نمایش داده نشد. ترکیب های مختلفی را امتحان کردم. از سوئیچ ‘-i-’ در ابتدای دستور استفاده کردم، تا حساسیت به بزرگی و کوچکی را غیرفعال کنم، تا جست و جو برای ‘Google’ و ‘google’ انجام شود. حتی خلاصه کردن جست و جو در یک فایل خاص همه نتیجه ای در برنداشت.

خوب اگر ‘grep’ نتواند محتوای فایل هایی با پسوند ODT یا DOCX  را جست و جو نکند، چه می شود؟! من فایل هایی که با این فرمت ها ذخیره کرده بودم را باز کردم، متن آنها را کپی کردم و در قالب TXT ذخیره کردم. وقتی ‘grep’ را دوباره استفاده کردم، این بار جست و جو جواب داد و محل هایی که عبارت جست و جوی ام در آنها بود، نمایش داده شد.

ظاهرا قدرت ‘grep’ محدود به فرمت های خاصی از فایل هاست، و  متاسفانه به نظر می رسد نمی تواند فایل هایی که بیشتر با آنها سر و کار دارم را جست و جو کند. بر اساس آنچه در صفحه ی man این فرمان خواندم، به نظر فرمان قدرت مند و کاربردی است، اما اگر نتواند فایل های DOCX را جست  و جو کند، کاربردی برای من ندارد.

اگر از کاربران حرفه ای لینوکس کسی باشد که بتواند ابزار یا راهکاری را برای جست و جو  در فایل های Docx یا ODT معرفی کند، منتظر آن خواهم بود.

برگرفته از :

Ubuntu Linux, Day 19: Using ‹man› and ‹grep›

در همین رابطه بخوانید:

سفر به دنیای Ubutnu؛ روز شانزدهم

Advertisements

دربارهٔ Persian Developer

I Love Developing applications

Posted on اکتبر 17, 2011, in Ubuntu and tagged , , , . Bookmark the permalink. ۱ دیدگاه.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: