کاربر لينوکس به هر مدتي باشيد، تا به‌حال در مورد grep چيزهايي شنيده‌ايد. گنوگرپ ابزاري است که مي‌توانيد توسط آن فايل‌هاي مختلف را جستجو کنيد. هر کسي که بخواهد با لينوکس کار کند، بايد به اين ابزار مسلط باشد.

اين ابزار در ابتدا کاربرد ساده‌اي دارد و بر اساس الگوي دريافتي جستجو مي‌کند. گرپ فايل يا فايل‌هاي مختلف را مي‌گردد و در هر خطي که بتواند آن الگو را پيدا کند، فايل را برمي‌گرداند. توجه داشته باشيد که گرپ آن خط از فايل و نام فايل را برمي‌گرداند.

ابزارگرپ در 90 درصد مواقع کاربرد مفيدي دارد. مهم‌ترين آن همان‌طور که گفتيم، جستجو در ميان فايل‌ها است. مي‌توان بدون هيچ دردسري فايل‌هاي گزارش طويل نرم‌افزاري را به‌دنبال يک پيغام خاص جستجو کرد.

همچنين اين ابزار براي فيلتر کردن خروجي نرم‌افزارهاي مختلف کاربرد زيادي دارد. مثلا بياييد فرض کنيم که تمام فايل‌هايي که در دايرکتوري
/usr/bin وجود دارد را مي‌خواهيد بيابيد. دستور زير را اجرا کنيد:

dpkg-query -L packagename | grep "/usr/bin"

و اگر در سيستم‌هاي rpm کار مي‌کنيد، دستور زير را اجرا کنيد:‌

rpm -q --filesbypkg packagename | grep "/usr/bin"

به‌جاي اين‌که تمام فايل‌هاي داخل آن دايرکتوري را ببينيد، تنها فايل‌هاي نصبي را مشاهده خواهيد کرد.

تقريبا در تمام سيستم‌هاي عامل يونيکسي، گرپ به‌صورت پيش‌فرض حساس به کوچکي و بزرگي کلمات است. براي اين‌که در جستجو حساسيت آن را برداريد، بايد انتخاب i- را به آن بدهيد.

براي جستجو در زيردايرکتوري‌ها بايد از گزينه r- استفاده کنيد. به‌صورت پيش‌فرض گرپ تنها دايرکتوري اصلي را جستجو مي‌کند و به دايرکتوري‌هاي پاييني کاري ندارد. بنابراين اگر دستوري مشابه grep *.html را اجرا کرديد، در اين صورت دايرکتوري‌هايي که در دايرکتوري فعلي قرار دارند بررسي نخواهد شد.

حالا اگر بخواهيد همه چيز را پيدا کنيد ولي يک چيز خاص را فيلتر کنيد چطور؟ مي‌شود اين کار را با گزينه v- در گرپ انجام داد و فايل‌هايي که نمي‌خواهيد را از فهرست نتايج حذف کنيد.

اگر مي‌خواهيد بدانيد که چه فايل‌هايي اين الگو را را دارند اما نمي‌خواهيد نتيجه را به صورت خطوط يافت شده و نام فايل مشاهده کنيد، در اين صورت از گزينه L- استفاده کنيد. اين گزينه تنها اسم فايل‌ها را به چاپ مي‌رساند و کاري به خطوط جستجو شده ندارد.

به‌همين ترتيب اگر بخواهيد بدانيد که چه فايلي يافت شده اما نمي‌خواهيد خط را به‌طور کامل ببينيد، در اين صورت از گزينه l-استفاده کنيد.

برايتان نام فايل مهم نيست و مي‌خواهيد بدانيد چه خطوطي يافت شده است؟ از گزينه h- استفاده کنيد تا نام فايل در خروجي نشان داده نشود.

به‌صورت پيش‌فرض گرپ خيلي حريصانه به‌دنبال الگوها مي‌گردد. يعني گرپ به‌دنبال الگوها و رشته‌هاي بلندتري که در آن وجود دارد مي‌گردد. بنابراين اگر به گرپ بگوييد به‌دنبال Beat بگرد، علاوه بر کلمه‌ ‌Beat، عبارات Beatles, Beaten, Beats و هر چه که با Beat آغاز شود را پيدا مي‌کند. اگر به‌دنبال يک عبارت خاص باشيد، اين گزينه کارايي کمتري دارد.

براي همين براي ايجاد محدوديت، از گزينه w- استفاده کنيد تا تنها به‌دنبال همان کلمه خاص بگردد.

وقتي با گرپ کار مي‌کنيد، گاهي اوقات نياز داريد برخي از عبارات قبل و بعد را بياوريد. به‌صورت پيش‌فرض گرپ کل خط را مي‌آورد. با گزينه‌هاي زير مي‌توانيد خطوط قبلي و بعدي را هم بياوريد. براي متون بعدي A- براي متون قبلي B- و براي کل پاراگراف C- را بزنيد.

عبارات با قاعده در گرپ قابل استفاده است. البته اين قابليت بيشتر براي کاربران حرفه‌اي است که به عبارات باقاعده مسلط هستند اما مي‌توان به‌سادگي آن‌ها را فراگرفت.

محيط گرپ به‌هرحال در ترمينال است و متني. بنابراين بعد از مدتي که زياد با آن کار کرديد، قطعا چشمانتان خسته مي‌شوند. مي‌توان خروجي گرپ را به‌رنگ‌هاي مختلف درآورد تا کمي چشم‌نواز شوند. براي اين کار از گزينه color --استفاده کنيد.