AWK NF کیا ہے؟

Awk Nf Kya



AWK اسکرپٹنگ لینگویج میں کچھ پہلے سے طے شدہ مقاصد کو پورا کرنے کے لیے بلٹ ان خصوصی متغیرات کی ایک سیریز بھی ہوتی ہے۔ ایسا ہی ایک بلٹ ان متغیر 'NF' ہے جس کی اپنی پہلے سے طے شدہ فعالیت ہے۔ یہ مضمون Ubuntu 20.04 میں کچھ متعلقہ مثالوں کا مظاہرہ کرتے ہوئے اس بلٹ ان AWK متغیر کے مقصد کو تلاش کرے گا۔

اوبنٹو 20.04 میں AWK NF:

'NF' AWK متغیر کسی بھی فراہم کردہ فائل کی تمام لائنوں میں فیلڈز کی تعداد پرنٹ کرنے کے لیے استعمال ہوتا ہے۔ یہ بلٹ ان متغیر فائل کی تمام لائنوں میں ایک ایک کرکے دہرتا ہے اور ہر لائن کے لیے الگ الگ فیلڈز کی تعداد پرنٹ کرتا ہے۔ اس فعالیت کو اچھی طرح سے سمجھنے کے لیے، آپ کو نیچے دی گئی مثالوں کو پڑھنا ہوگا۔

Ubuntu 20.04 میں AWK NF کے استعمال کو ظاہر کرنے کی مثالیں:

درج ذیل چار مثالیں آپ کو AWK NF کے استعمال کو سمجھنے میں آسان طریقے سے سکھانے کے طریقے سے تیار کی گئی ہیں۔ یہ تمام مثالیں Ubuntu 20.04 آپریٹنگ سسٹم کا استعمال کرتے ہوئے لاگو کی گئی ہیں۔







مثال نمبر 1: ٹیکسٹ فائل کی ہر لائن سے فیلڈز کی تعداد پرنٹ کریں:

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





ایک بار جب ہم نے یہ نمونہ ٹیکسٹ فائل بنا لی، ہم نے اپنے ٹرمینل میں اس ٹیکسٹ فائل کی ہر لائن سے فیلڈز کی تعداد پرنٹ کرنے کے لیے درج ذیل کمانڈ کو عمل میں لایا:





$ awk ' { NF پرنٹ کریں۔ } AppleRates.txt

اس کمانڈ میں، ہمارے پاس 'awk' کلیدی لفظ ہے جو یہ ظاہر کرتا ہے کہ ہم AWK کمانڈ چلا رہے ہیں جس کے بعد 'print NF' اسٹیٹمنٹ ہے جو ٹارگٹ ٹیکسٹ فائل کی ہر سطر میں آسانی سے دہرائے گا اور ہر ایک کے لیے الگ الگ فیلڈز کی تعداد پرنٹ کرے گا۔ ٹیکسٹ فائل کی لائن۔ آخر میں، ہمارے پاس اس ٹیکسٹ فائل کا نام ہے (جس کے فیلڈز کو شمار کیا جانا ہے) جو ہمارے معاملے میں 'AppleRatest.txt' ہے۔



چونکہ ہمارے پاس اپنی ٹیکسٹ فائل کی پانچوں لائنوں کے لیے فیلڈز کی ایک ہی تعداد تھی، یعنی 2، اس کمانڈ پر عمل کرنے کی وجہ سے تمام ٹیکسٹ فائل لائنوں کے لیے فیلڈز کی تعداد کے طور پر ایک ہی نمبر پرنٹ کیا جاتا ہے۔ یہ ذیل کی تصویر سے دیکھا جا سکتا ہے:

مثال نمبر 2: ٹیکسٹ فائل کی ہر لائن سے فیلڈز کی تعداد کو پیش کرنے کے قابل طریقے سے پرنٹ کریں:

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

$ awk ' { پرنٹ NR، '---'، NF } AppleRates.txt

اس کمانڈ میں، ہم نے بلٹ ان AWK متغیر 'NR' متعارف کرایا ہے جو ہماری ٹارگٹ ٹیکسٹ فائل کی تمام لائنوں کے لائن نمبرز کو آسانی سے پرنٹ کرے گا۔ مزید یہ کہ، ہم نے اپنی فراہم کردہ ٹیکسٹ فائل کے فیلڈز کی تعداد سے لائن نمبرز کو الگ کرنے کے لیے تین ڈیشز، '—' کو بطور خاص استعمال کیا ہے۔

اسی ٹیکسٹ فائل کا یہ قدرے تبدیل شدہ آؤٹ پٹ نیچے دی گئی تصویر میں دکھایا گیا ہے۔

مثال نمبر 3: ٹیکسٹ فائل کی ہر لائن سے پہلی اور آخری فیلڈز پرنٹ کریں:

فراہم کردہ ٹیکسٹ فائل کی تمام لائنوں کے فیلڈز کی تعداد گننے کے علاوہ، AWK کا 'NF' خصوصی متغیر فراہم کردہ ٹیکسٹ فائل سے آخری فیلڈ کی اصل قدریں نکالنے کے لیے بھی استعمال کیا جا سکتا ہے۔ ایک بار پھر، ہم نے وہی ٹیکسٹ فائل استعمال کی ہے جو ہم نے اپنی پہلی دو مثالوں کے لیے استعمال کی ہے۔ تاہم، ہم اس مثال میں اپنی ٹیکسٹ فائل کے پہلے اور آخری فیلڈز کی اصل قدروں کو پرنٹ کرنا چاہتے ہیں۔ اس کے لیے، ہم نے درج ذیل کمانڈ پر عمل کیا:

$ awk ' { پرنٹ کریں $1 ، $NF } AppleRates.txt

'awk' کلیدی لفظ کے بعد اس کمانڈ میں 'print $1, $NF' بیان آتا ہے۔ '$1' خصوصی متغیر پہلی فیلڈ یا ہماری فراہم کردہ ٹیکسٹ فائل کے پہلے کالم کی قدروں کو پرنٹ کرنے کے لیے استعمال کیا گیا ہے، جب کہ '$NF' AWK متغیر آخری فیلڈ یا آخری کالم کی قدروں کو پرنٹ کرنے کے لیے استعمال کیا گیا ہے۔ ہماری ٹارگٹ ٹیکسٹ فائل کا۔ آپ کو یہاں یہ نوٹ کرنے کی ضرورت ہے کہ جب ہم 'NF' AWK متغیر کا استعمال کرتے ہیں جیسا کہ یہ ہے، تو یہ ہر لائن کے فیلڈز کی تعداد کو شمار کرنے کے لیے استعمال ہوتا ہے۔ تاہم، جب اسے ڈالر '$' علامت کے ساتھ استعمال کیا جاتا ہے، تو یہ صرف فراہم کردہ ٹیکسٹ فائل کے آخری فیلڈ سے اصل قدریں نکال لے گا۔ باقی کمانڈ کم و بیش وہی ہے جو پہلے دو مثالوں کے لیے استعمال کی گئی ہے۔

نیچے دکھائے گئے آؤٹ پٹ میں، آپ دیکھ سکتے ہیں کہ ہماری فراہم کردہ ٹیکسٹ فائل کے پہلے اور آخری فیلڈز کی اصل قدریں ٹرمینل پر پرنٹ ہو چکی ہیں۔ آپ دیکھ سکتے ہیں کہ یہ آؤٹ پٹ 'کیٹ' کمانڈ کے آؤٹ پٹ سے کافی حد تک ملتا جلتا ہے کیونکہ ہمارے پاس ہماری فراہم کردہ ٹیکسٹ فائل میں صرف دو فیلڈز تھے۔ لہذا، ایک طرح سے، ہماری پوری ٹیکسٹ فائل کے مندرجات کو اوپر دی گئی کمانڈ پر عمل کرنے کے نتیجے میں ٹرمینل پر پرنٹ کیا گیا تھا۔

مثال نمبر 4: ٹیکسٹ فائل میں گم شدہ فیلڈز کے ساتھ ریکارڈ کو الگ کریں:

بعض اوقات، ٹیکسٹ فائل میں کچھ ریکارڈز ہوتے ہیں جن میں کچھ غائب فیلڈز ہوتے ہیں، اور ہو سکتا ہے آپ ان ریکارڈز کو ان ریکارڈز سے الگ کرنا چاہیں جو ہر پہلو سے مکمل ہوں۔ یہ 'NF' AWK متغیر کا استعمال کرکے بھی کیا جا سکتا ہے۔ اس کے لیے، ہم نے 'ExamMarks.txt' کے نام سے ایک ٹیکسٹ فائل بنائی ہے جس میں تین مختلف امتحانات میں پانچ مختلف طلباء کے امتحانی اسکور ان کے ناموں کے ساتھ شامل ہیں۔ تاہم تیسرے امتحان میں کچھ طلباء غیر حاضر تھے جس کی وجہ سے ان کے اسکور غائب تھے۔ یہ ٹیکسٹ فائل حسب ذیل ہے:

غائب فیلڈز والے ریکارڈ کو مکمل فیلڈز والے ریکارڈز سے ممتاز کرنے کے لیے، ہم ذیل میں دکھائی گئی کمانڈ پر عمل کریں گے:

$ awk ' { پرنٹ این آر، '--- > ”، این ایف } ExamMarks.txt

یہ حکم وہی ہے جو ہم نے اپنی دوسری مثال کے لیے استعمال کیا ہے۔ تاہم، مندرجہ ذیل تصویر میں دکھائے گئے اس کمانڈ کے آؤٹ پٹ سے، آپ دیکھ سکتے ہیں کہ پہلا اور چوتھا ریکارڈ مکمل ہو گیا ہے، جب کہ دوسرے، تیسرے اور پانچویں ریکارڈ میں غائب فیلڈز ہیں۔

نتیجہ:

اس مضمون کا مقصد 'NF' AWK خصوصی متغیر کے استعمال کی وضاحت کرنا تھا۔ ہم نے پہلے مختصراً بحث کی کہ یہ متغیر کیسے کام کرتا ہے، اور اس کے بعد، ہم نے چار مختلف مثالوں کی مدد سے اس تصور کو اچھی طرح واضح کیا۔ ایک بار جب آپ تمام مشترکہ مثالوں کو اچھی طرح سمجھ لیں گے، تو آپ فیلڈز کی کل تعداد شمار کرنے اور فراہم کردہ فائل کے آخری فیلڈ کی اصل قدروں کو پرنٹ کرنے کے لیے 'NF' AWK متغیر استعمال کر سکیں گے۔