پیدا کردن سوزن در انبار کاه لاگها
grep یکی از پرکاربردترین ابزارهای خط فرمان است که خطوطی از یک فایل یا خروجی را که با یک الگوی مشخص مطابقت دارند، پیدا و نمایش میدهد. کاربرد اصلی آن جستوجو در فایلهای لاگ حجیم است:
grep "ERROR" app.log
grep -i "error" app.log
grep -n "ERROR" app.log
grep -c "ERROR" app.log
grep -r "TODO" ./src
-i جستوجو را غیرحساس به بزرگی/کوچکی حروف میکند، -n شمارهی خط را هم نشان میدهد، -c فقط تعداد خطوط منطبق را میشمارد و -r جستوجو را بهصورت بازگشتی در تمام زیرپوشهها انجام میدهد.
ترکیب grep با pipe
یکی از قدرتمندترین ویژگیهای خط فرمان لینوکس، اپراتور pipe (|) است که خروجی یک دستور را به ورودی دستور بعدی متصل میکند:
ps aux | grep nginx
cat access.log | grep "404" | wc -l
tail -f server.log | grep --line-buffered "ERROR"
مثال اول همهی پردازشهای در حال اجرا را میگیرد و فقط خطوط مربوط به nginx را نشان میدهد. مثال دوم تعداد درخواستهای با خطای ۴۰۴ را در لاگ میشمارد. مثال سوم یک لاگ زنده را دنبال میکند و فقط خطوط خطا را در لحظه نشان میدهد؛ ترکیبی که بسیار در مانیتورینگ زندهی سرور کاربرد دارد. grep همراه با پشتیبانی از عبارات باقاعده (Regular Expressions) میتواند الگوهای بسیار پیچیدهتری از متن را نیز پیدا کند.