ماڈیول اسباق (2/2)
پائپ لائنز اور فلٹرز (گریپ اور |)
لینکس کمانڈ لائن کی سب سے طاقتور خصوصیات میں سے ایک مختلف کمانڈز کو جوڑنے کی صلاحیت ہے تاکہ ایک کا آؤٹ پٹ اگلے کے لیے ان پٹ بن جائے۔ یہ تکنیک پائپ لائنز کا استعمال کرتے ہوئے مکمل کی جاتی ہے اور عام طور پر ٹیکسٹ فلٹرنگ کمانڈ grep کے ساتھ جوڑا جاتا ہے۔
فلٹرنگ ٹیکسٹ: grep
grep (گلوبل ریگولر ایکسپریشن پرنٹ) کمانڈ ایک یا زیادہ فائلوں کے اندر متن کے مخصوص سٹرنگ کو تلاش کرتی ہے اور مماثل لائنوں کو پرنٹ کرتی ہے:
grep "string" [file_name]grep کے لیے مفید اختیارات
grep -i "error" server.log: کیس غیر حساس تلاش کرتا ہے (اپر اور چھوٹے کے درمیان فرق کو نظر انداز کرتا ہے، "خرابی"، "خرابی" یا "خرابی" تلاش کرتا ہے)۔grep -n "connection" server.log: مماثل لائن کے ساتھ لائن نمبر دکھاتا ہے۔grep -v "INFO" server.log: تلاش کو الٹا کرتا ہے، صرف ان لائنوں کو ظاہر کرتا ہے جن میں مخصوص کلیدی لفظ نہیں ہوتا۔
چیننگ کمانڈز: پائپ لائن |
پائپ لائن آپریٹر کی نمائندگی عمودی بار | سے ہوتی ہے۔ یہ بائیں طرف کمانڈ کے معیاری آؤٹ پٹ کو براہ راست دائیں طرف کی کمانڈ کے معیاری ان پٹ پر بھیجتا ہے:
[command1] | [command2]مثال کے طور پر، اگر لاگ فائل بہت بڑی ہے اور آپ پوری فائل کو پرنٹ کیے بغیر ایک مخصوص لفظ تلاش کرنا چاہتے ہیں، تو آپ cat اور grep کو یکجا کر سکتے ہیں:
cat logs/server.log | grep ERRORیہ پوری server.log فائل کو cat کے ساتھ پڑھتا ہے، لیکن اسے اسکرین پر پرنٹ کرنے کے بجائے، یہ سٹریم کو grep پر پائپ کرتا ہے، جو صرف لفظ "ERROR" پر مشتمل لائنوں کو فلٹر اور ڈسپلے کرتا ہے۔
استعمال کی مثالیں اور عام غلطیاں
اگر آپ کسی فائل میں چھوٹے لفظ (جیسے "پوسٹ") کو تلاش کرتے ہیں جس میں یہ صرف بڑے حروف میں ہوتا ہے (جیسے "POST")، تو grep کچھ بھی نہیں لوٹائے گا:
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)اس کے معاملے سے قطع نظر لائن کو تلاش کرنے کے لیے، -i پرچم استعمال کریں:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234اگر متعین فائل موجود نہیں ہے تو، grep ایک خرابی لوٹائے گا:
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directoryخود ہی آزمائیں۔
مشق 1: لاگ فائلوں میں غلطیوں کی تلاش کریں۔
فائل 'logs/server.log' کو فلٹر کریں اور صرف ان لائنوں کو نکالیں جن میں لفظ 'ERROR' (کیس حساس) ہو۔
اشارہ دکھائیں۔
گریپ کمانڈ کا استعمال کریں جس کے بعد لفظ اور فائل پاتھ کو تلاش کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 2: پائپ لائنز اور فلٹرز
فائل 'logs/server.log' کو پڑھنے کے لیے cat کمانڈ کا استعمال کریں اور پائپ (|) اس کے آؤٹ پٹ کو grep کمانڈ میں صرف لفظ 'WARNING' پر مشتمل لائنوں کو فلٹر اور پرنٹ کریں۔
اشارہ دکھائیں۔
پائپ '|' کا استعمال کرتے ہوئے cat logs/server.log کو grep وارننگ سے مربوط کریں۔ کردار
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 3: کیس غیر حساس تلاش
مناسب grep پرچم کا استعمال کرتے ہوئے 'logs/access.log' فائل میں لفظ 'پوسٹ' (یا تو بڑے یا چھوٹے) پر مشتمل تمام لائنوں کو تلاش کریں۔
اشارہ دکھائیں۔
کیس کی حساسیت کو نظر انداز کرنے کے لیے -i آپشن کے ساتھ grep استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔