میچوں کی ارد گرد کی لائنوں کو ظاہر کرنے کے لیے گریپ کا استعمال

میچوں کی ارد گرد کی لائنوں کو ظاہر کرنے کے لیے گریپ کا استعمال
Bash

سیاق و سباق کی تلاش کے لیے گریپ میں مہارت حاصل کرنا

ٹیکسٹ فائلوں کے ساتھ کام کرتے وقت، مخصوص پیٹرن یا تاروں کو تلاش کرنا اکثر ضروری ہوتا ہے۔ Unix/Linux میں 'grep' کمانڈ اس مقصد کے لیے ایک طاقتور ٹول ہے۔ تاہم، بعض اوقات صرف میچ تلاش کرنا کافی نہیں ہوتا ہے۔ آپ کو سیاق و سباق کو سمجھنے کے لیے مماثل پیٹرن کے ارد گرد لکیریں بھی دیکھنے کی ضرورت پڑ سکتی ہے۔

اس آرٹیکل میں، ہم آپ کے مطلوبہ پیٹرن کو نہ صرف تلاش کرنے کے لیے `grep` استعمال کرنے کا طریقہ دریافت کریں گے بلکہ ہر میچ کے لیے پچھلی اور مندرجہ ذیل پانچ سطروں کو بھی ڈسپلے کریں گے۔ یہ تکنیک ڈیبگنگ، لاگ تجزیہ، اور ڈیٹا نکالنے کے کاموں کے لیے انمول ہے۔

کمانڈ تفصیل
grep -C ہر میچ سے پہلے اور بعد میں سیاق و سباق کی مخصوص لائنوں کے ساتھ مماثل لائنوں کو دکھاتا ہے۔
#!/bin/bash وضاحت کرتا ہے کہ اسکرپٹ کو باش شیل ماحول میں چلایا جانا چاہئے۔
import re Python میں ریگولر ایکسپریشن لائبریری کو درآمد کرتا ہے، جو سٹرنگز کے اندر پیٹرن کی مماثلت کی اجازت دیتا ہے۔
max() ان پٹ کی سب سے بڑی قدریں لوٹاتا ہے، جو یہاں منفی اشاریہ سے بچنے کے لیے استعمال ہوتی ہے۔
min() ان پٹ قدروں میں سے سب سے چھوٹی کو لوٹاتا ہے، جو فہرست کی لمبائی سے آگے کے اشاریوں سے بچنے کے لیے یہاں استعمال کیا جاتا ہے۔
enumerate() ایک کاؤنٹر کو اٹیبل میں شامل کرتا ہے، جو ایک لوپ میں انڈیکس اور قدر دونوں حاصل کرنے کے لیے مفید ہے۔
sys.argv Python اسکرپٹ کو بھیجے گئے کمانڈ لائن دلائل تک رسائی فراہم کرتا ہے۔

گریپ سیاق و سباق کی تلاش کے اسکرپٹ کو سمجھنا

باش میں لکھا ہوا پہلا اسکرپٹ، اس کا فائدہ اٹھاتا ہے۔ grep ایک فائل کے اندر پیٹرن تلاش کرنے اور ہر میچ کے ارد گرد لائنیں ڈسپلے کرنے کا حکم۔ دی grep -C آپشن خاص طور پر طاقتور ہے، کیونکہ یہ صارفین کو ہر میچ سے پہلے اور بعد میں ظاہر کرنے کے لیے سیاق و سباق کی لائنوں کی تعداد بتانے کی اجازت دیتا ہے۔ اس اسکرپٹ میں، صارف ایک سرچ پیٹرن اور ایک فائل کا نام بطور دلیل فراہم کرتا ہے۔ اس کے بعد اسکرپٹ پر عمل ہوتا ہے۔ grep -C 5، کہاں -C 5 بتاتا ہے grep ہر مماثل لائن سے پہلے اور بعد میں پانچ لائنیں دکھانے کے لیے۔ یہ نقطہ نظر بڑی ٹیکسٹ فائلوں میں تیزی سے مماثلتوں کو تلاش کرنے اور سیاق و سباق کے مطابق بنانے کے لیے سیدھا اور موثر ہے، جو اسے لاگ انالیسس یا ڈیبگنگ جیسے کاموں کے لیے مثالی بناتا ہے۔

دوسری اسکرپٹ، جو Python میں لکھی گئی ہے، اسی مقصد کو حاصل کرنے کے لیے زیادہ پروگرامی طریقہ پیش کرتی ہے۔ یہ استعمال کرتا ہے۔ re ریگولر ایکسپریشن میچنگ کے لیے ماڈیول اور sys.argv کمانڈ لائن دلائل سے نمٹنے کے لیے۔ دی grep_context فنکشن فائل کو لائنوں کی فہرست میں پڑھتا ہے اور ان کے ذریعے اعادہ کرتا ہے، ہر لائن کو میچ کے لیے چیک کرتا ہے۔ re.search. جب کوئی مماثلت پائی جاتی ہے، تو یہ میچ سے پہلے اور بعد میں لائنوں کی مخصوص تعداد کو شامل کرنے کے لیے شروع اور اختتامی اشاریوں کا حساب لگاتا ہے، اس بات کو یقینی بناتا ہے کہ وہ فہرست کی حدود میں رہیں۔ max اور min افعال. یہ اسکرپٹ لچک فراہم کرتا ہے اور اسے آسانی سے بڑھایا جا سکتا ہے یا مخصوص ضروریات کے مطابق تبدیل کیا جا سکتا ہے، جیسے سیاق و سباق کی حد کو تبدیل کرنا یا ڈیٹا پروسیسنگ کے دیگر کاموں کے ساتھ انضمام۔

سیاق و سباق کی تلاش کے لئے گریپ کا استعمال کیسے کریں۔

سیاق و سباق کی تلاش کے لیے باش اسکرپٹ

#!/bin/bash
# Usage: ./script.sh pattern filename
pattern=$1
filename=$2
grep -C 5 "$pattern" "$filename"

سیاق و سباق کے اختیارات کے ساتھ گریپ کا استعمال

سیاق و سباق کے ساتھ گریپ کی نقل کرنے کے لیے ازگر کا اسکرپٹ

import sys
import re
def grep_context(pattern, filename, context=5):
    with open(filename, 'r') as file:
        lines = file.readlines()
    for i, line in enumerate(lines):
        if re.search(pattern, line):
            start = max(i - context, 0)
            end = min(i + context + 1, len(lines))
            for l in lines[start:end]:
                print(l, end='')
if __name__ == "__main__":
    pattern = sys.argv[1]
    filename = sys.argv[2]
    grep_context(pattern, filename)

سیاق و سباق کی تلاش کے لیے ایڈوانسڈ گریپ آپشنز کی تلاش

بنیادی سے آگے grep -C اختیار، کئی اعلی درجے کی grep پیٹرن تلاش کرنے اور آس پاس کی لکیروں کی نمائش کرتے وقت اختیارات اور بھی زیادہ کنٹرول اور لچک فراہم کرتے ہیں۔ ایسا ہی ایک آپشن ہے۔ grep -A، جو ہر میچ کے بعد لائنوں کی ایک مخصوص تعداد دکھاتا ہے۔ یہ خاص طور پر مفید ہو سکتا ہے جب میچ کے بعد کا سیاق و سباق آپ کے تجزیہ کے لیے زیادہ اہم ہو۔ اسی طرح، grep -B ہر میچ سے پہلے لائنیں دکھاتا ہے، جس میں اہم سیاق و سباق کا ایک مرکوز نظریہ پیش کیا جاتا ہے۔ ان اختیارات کو یکجا کر کے، آپ اپنی ضروریات کے عین مطابق آؤٹ پٹ کو تیار کر سکتے ہیں۔

ایک اور طاقتور خصوصیت اندر اندر ریگولر ایکسپریشنز کا استعمال ہے۔ grep. ریگولر ایکسپریشنز کا فائدہ اٹھاتے ہوئے، آپ زیادہ پیچیدہ تلاشیں انجام دے سکتے ہیں جو سادہ سٹرنگ مماثلت سے بالاتر ہیں۔ مثال کے طور پر، کا استعمال کرتے ہوئے -E کے ساتھ اختیار grep توسیع شدہ ریگولر ایکسپریشنز کے استعمال کی اجازت دیتا ہے، ایک زیادہ جامع پیٹرن میچنگ کی صلاحیت فراہم کرتا ہے۔ یہ ان منظرناموں میں کارآمد ہے جہاں آپ کو مختلف طوالت یا فارمیٹس کے ساتھ پیٹرن ملانے کی ضرورت ہوتی ہے۔ مزید برآں، grep کی حمایت کرتا ہے --color آپشن، جو آؤٹ پٹ میں مماثل نمونوں کو نمایاں کرتا ہے، جس سے متن کے بڑے بلاکس میں مماثلتوں کی بصری شناخت کرنا آسان ہو جاتا ہے۔

گریپ اور سیاق و سباق کی تلاش کے بارے میں عام سوالات

  1. میں grep کا استعمال کرتے ہوئے ہر میچ کے بعد صرف لائنیں کیسے دکھا سکتا ہوں؟
  2. کا استعمال کرتے ہیں grep -A آپشن کے بعد لائنوں کی تعداد کے بعد آپ ہر میچ کے بعد ڈسپلے کرنا چاہتے ہیں۔
  3. میں grep کے ساتھ میچ سے پہلے لائنیں کیسے دکھاؤں؟
  4. دی grep -B آپشن آپ کو ہر میچ سے پہلے لائنوں کو ظاہر کرنے کی اجازت دیتا ہے، اس کے بعد لائنوں کی تعداد۔
  5. کیا میں میچ سے پہلے اور بعد میں لائنز دکھانے کے لیے آپشنز کو یکجا کر سکتا ہوں؟
  6. ہاں، امتزاج grep -A اور -B اختیارات ہر میچ سے پہلے اور بعد میں لائنیں دکھائیں گے۔
  7. grep --color آپشن کیا کرتا ہے؟
  8. دی --color آپشن آؤٹ پٹ میں مماثل نمونوں کو نمایاں کرتا ہے، جس سے انہیں دیکھنا آسان ہو جاتا ہے۔
  9. میں grep کے ساتھ ریگولر ایکسپریشن کیسے استعمال کر سکتا ہوں؟
  10. کا استعمال کرتے ہیں grep -E زیادہ پیچیدہ پیٹرن میچنگ کے لیے توسیع شدہ ریگولر ایکسپریشنز کو فعال کرنے کا آپشن۔
  11. کیا گریپ ڈسپلے کے میچوں کی تعداد کو محدود کرنے کا کوئی طریقہ ہے؟
  12. جی ہاں، دی grep -m نمبر کے بعد آپشن دکھائے جانے والے میچوں کی تعداد کو محدود کرتا ہے۔
  13. کیا میں گریپ سرچز کو کیس غیر حساس بنا سکتا ہوں؟
  14. کا استعمال کرتے ہوئے grep -i آپشن سرچ کیس کو غیر حساس بنا دیتا ہے۔
  15. میں grep کے ساتھ متعدد فائلوں میں پیٹرن کیسے تلاش کروں؟
  16. آپ متعدد فائل نام فراہم کر سکتے ہیں یا اس کے ساتھ وائلڈ کارڈ استعمال کر سکتے ہیں۔ grep ایک ساتھ کئی فائلوں کو تلاش کرنے کے لیے۔

سیاق و سباق کی تلاش کے لیے ایڈوانسڈ گریپ آپشنز کی تلاش

بنیادی سے آگے grep -C اختیار، کئی اعلی درجے کی grep پیٹرن تلاش کرنے اور آس پاس کی لکیروں کی نمائش کرتے وقت اختیارات اور بھی زیادہ کنٹرول اور لچک فراہم کرتے ہیں۔ ایسا ہی ایک آپشن ہے۔ grep -A، جو ہر میچ کے بعد لائنوں کی ایک مخصوص تعداد دکھاتا ہے۔ یہ خاص طور پر مفید ہو سکتا ہے جب میچ کے بعد کا سیاق و سباق آپ کے تجزیہ کے لیے زیادہ اہم ہو۔ اسی طرح، grep -B ہر میچ سے پہلے لائنیں دکھاتا ہے، جس میں اہم سیاق و سباق کا ایک مرکوز نظریہ پیش کیا جاتا ہے۔ ان اختیارات کو یکجا کر کے، آپ اپنی ضروریات کے عین مطابق آؤٹ پٹ کو تیار کر سکتے ہیں۔

ایک اور طاقتور خصوصیت اندر اندر ریگولر ایکسپریشنز کا استعمال ہے۔ grep. ریگولر ایکسپریشنز کا فائدہ اٹھاتے ہوئے، آپ زیادہ پیچیدہ تلاشیں انجام دے سکتے ہیں جو سادہ سٹرنگ مماثلت سے بالاتر ہیں۔ مثال کے طور پر، کا استعمال کرتے ہوئے -E کے ساتھ اختیار grep توسیع شدہ ریگولر ایکسپریشنز کے استعمال کی اجازت دیتا ہے، ایک زیادہ جامع پیٹرن میچنگ کی صلاحیت فراہم کرتا ہے۔ یہ ان منظرناموں میں کارآمد ہے جہاں آپ کو مختلف لمبائیوں یا فارمیٹس کے ساتھ پیٹرن سے ملنے کی ضرورت ہوتی ہے۔ مزید برآں، grep کی حمایت کرتا ہے --color آپشن، جو آؤٹ پٹ میں مماثل نمونوں کو نمایاں کرتا ہے، جس سے متن کے بڑے بلاکس میں مماثلتوں کی بصری شناخت کرنا آسان ہو جاتا ہے۔

کلیدی نکات کا خلاصہ

ملا کر grep اختیارات اور اسکرپٹنگ زبانیں جیسے Python، آپ پیٹرن کو مؤثر طریقے سے تلاش کرسکتے ہیں اور ٹیکسٹ فائلوں میں ارد گرد کے سیاق و سباق کی لکیریں دکھا سکتے ہیں۔ یہ طریقے ڈیٹا کا تجزیہ کرنے اور اس کی تشریح کرنے کی آپ کی صلاحیت کو بڑھاتے ہیں، ان کو لاگ تجزیہ، ڈیبگنگ، اور ڈیٹا نکالنے کے کاموں کے لیے قیمتی ٹولز بناتے ہیں۔