`awk` کمانڈ کا استعمال کرتے ہوئے کالموں کی ایک رینج کیسے چھاپیں۔

How Print Range Columns Using Awk Command



`awk` کمانڈ بہت سے احکامات میں سے ایک ہے جسے لینکس میں ٹیبلر ڈیٹا سے کالموں کی ایک رینج پرنٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔ `awk` کمانڈ کا استعمال ٹرمینل سے براہ راست` awk` اسکرپٹ فائل پر عمل درآمد کے ذریعے کیا جا سکتا ہے۔ اس ٹیوٹوریل میں ، ہم آپ کو دکھائیں گے کہ ٹیبلر ڈیٹا سے کالموں کی ایک رینج کیسے پرنٹ کی جائے۔

مثال 1: کمانڈ آؤٹ پٹ سے کالموں کی ایک رینج پرنٹ کریں۔

مندرجہ ذیل کمانڈ کمانڈ آؤٹ پٹ سے دوسرے ، تیسرے اور چوتھے کالم پرنٹ کرے گی ، 'Ls -l '. یہاں ، کالم نمبر واضح طور پر بیان کیے گئے ہیں ، لیکن کالموں کی اسی رینج کو پرنٹ کرنے کے لیے زیادہ موثر کمانڈ اگلی مثال میں دکھائی گئی ہے۔







$ایل ایس - | عجیب '{$ 2 ، $ 3 ، $ 4} پرنٹ کریں' '

مندرجہ ذیل آؤٹ پٹ مندرجہ بالا کمانڈ کے ذریعہ تیار کیا گیا ہے۔





مثال 2: a کا استعمال کرتے ہوئے فائل سے کالموں کی حد پرنٹ کریں۔ کے لیے لوپ

اس ٹیوٹوریل میں اس مثال اور دیگر مثالوں کے ساتھ چلنے کے لیے ، ایک ٹیکسٹ فائل بنائیں جس کا نام ہے۔ marks.txt مندرجہ ذیل مواد کے ساتھ۔ :





ID CSE203 CSE102 CSE202۔
1109۔ 78۔ 87۔ 79۔
1167۔ 67۔ 81۔ 70۔
1190۔ 56۔ 61۔ 69۔
1156۔ 89۔ 55۔ 78۔
199۔ 54۔ 66۔ 58۔

درج ذیل `awk` کمانڈ mark.txt کے پہلے تین کالم چھاپے گی۔ کی کے لیے لوپ کالم اقدار کو پرنٹ کرنے کے لیے استعمال کیا جاتا ہے ، اور لوپ میں تین مراحل شامل ہوتے ہیں۔ کی این ایف متغیر فائل کے شعبوں یا کالموں کی کل تعداد کی نشاندہی کرتا ہے۔

$کیٹmarks.txt
$عجیب '{for (i = 1؛ i<=NF-1;i++) printf $i' '; print ''}'marks.txt

کمانڈ چلانے سے مندرجہ ذیل آؤٹ پٹ تیار کی جائے گی۔ آؤٹ پٹ طالب علم کو ظاہر کرتا ہے۔ آئی ڈی اور کے لیے نشانات۔ سی ایس ای 203۔ اور سی ایس ای 102۔ .



مثال 3: شروع کرنے اور ختم کرنے والے متغیرات کی وضاحت کرکے کالموں کی حد پرنٹ کریں۔

مندرجہ ذیل 'awk' کمانڈ کمانڈ آؤٹ پٹ 'ls -l' سے پہلے تین کالم پرنٹ کرے گی شروع ہو رہا ہے اور ختم متغیرات یہاں ، کی قیمت شروع ہو رہا ہے متغیر 1 ہے ، اور کی قیمت ختم متغیر 3 ہے۔ یہ متغیر کالم اقدار کو پرنٹ کرنے کے لیے ایک لوپ میں دہرائے جاتے ہیں۔

$ایل ایس - | عجیب 'شروع کریں {پہلا = 1 آخری = 3}
{for (i = first i i

کمانڈ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ آؤٹ پٹ آؤٹ پٹ کے پہلے تین کالم ویلیوز دکھاتا ہے ، 'ls -l'۔

مثال 4: فارمیٹنگ والی فائل سے کالموں کی ایک رینج پرنٹ کریں۔

درج ذیل `awk` کمانڈ کے پہلے تین کالم پرنٹ کرے گی۔ marks.txt استعمال کرتے ہوئے پرنٹ ایف اور آؤٹ پٹ فیلڈ جداکار ( OFS ). یہاں ، لوپ میں تین مراحل شامل ہیں ، اور تین کالم فائل سے ترتیب میں پرنٹ کیے جائیں گے۔ OFS یہاں کالموں کے درمیان جگہ شامل کرنے کے لیے استعمال کیا جاتا ہے۔ جب لوپ (i) کی کاؤنٹر ویلیو برابر ہو۔ ختم متغیر ، پھر ایک نئی لائن ( n) پیدا ہوتی ہے۔

$کیٹmarks.txt
$عجیب -v شروع کریں= -v ختم= '{for (i = start i i<=end;i++) printf('%s%s',
$ i ، (i == end)؟ ' n': OFS)} '
marks.txt

مندرجہ بالا کمانڈ چلانے کے بعد درج ذیل آؤٹ پٹ پیدا ہوگی۔

مثال 5: مشروط بیان کا استعمال کرتے ہوئے فائل سے کالموں کی حد پرنٹ کریں۔

درج ذیل `awk` کمانڈ ایک فائل سے پہلے اور آخری کالم کو ایک لوپ اور اگر بیان کے ذریعے پرنٹ کرے گی۔ یہاں ، لوپ کے لیے چار مراحل شامل ہیں۔ کی شروع ہو رہا ہے اور ختم متغیرات کو اسکرپٹ میں استعمال کیا جاتا ہے تاکہ فائل سے دوسرے اور تیسرے کالم کو اگر حالت کا استعمال کرکے خارج کردیا جائے۔ OFS متغیر کالموں کے درمیان جگہ شامل کرنے کے لیے استعمال ہوتا ہے ، اور ORS متغیر آخری کالم پرنٹ کرنے کے بعد نئی لائن ( n) شامل کرنے کے لیے استعمال ہوتا ہے۔

$کیٹmarks.txt
$عجیب -v شروع کریں= -v ختم= '{for (i = 1؛ i<=NF;i++)
if (i> = start && i<=end) continue;
else printf ('٪ s٪ s'، $ i، (i! = NF)؟ OFS: ORS)} '
marks.txt

مندرجہ بالا کمانڈ چلانے کے بعد مندرجہ ذیل آؤٹ پٹ ظاہر ہوگا۔ آؤٹ پٹ مارکس ٹی ٹی ایکس کے پہلے اور آخری کالم دکھاتا ہے۔

مثال 6: NF متغیر کا استعمال کرتے ہوئے فائل سے کالموں کی حد پرنٹ کریں۔

درج ذیل `awk` کمانڈ NF متغیر استعمال کرکے فائل سے پہلے اور آخری کالم پرنٹ کرے گی۔ کالم اقدار کو پرنٹ کرنے کے لیے کوئی لوپس یا مشروط بیانات استعمال نہیں کیے جاتے۔ NF فیلڈز کی تعداد بتاتا ہے۔ marks.txt میں چار کالم ہیں۔ $ (NF-3) پہلے کالم کی وضاحت کرتا ہے ، اور $ NF آخری کالم کی نشاندہی کرتا ہے۔

$کیٹmarks.txt
$عجیب '{پرنٹ $ (NF-3)' '$ NF}'marks.txt

مندرجہ بالا آؤٹ پٹ مندرجہ بالا کمانڈز چلانے سے پیدا ہوتا ہے۔ آؤٹ پٹ مارکس ٹی ٹی ایکس کے پہلے اور آخری کالم دکھاتا ہے۔

مثال 7: ایک فائل سے کالموں کی رینج کو substr () اور index () کا استعمال کرتے ہوئے پرنٹ کریں

انڈیکس () فنکشن پوزیشن لوٹاتا ہے اگر دوسری دلیل ویلیو پہلی دلیل ویلیو میں موجود ہو۔ substr () فنکشن تین دلائل لے سکتا ہے۔ پہلی دلیل ایک سٹرنگ ویلیو ہے ، دوسری دلیل سٹارٹنگ پوزیشن ہے ، اور تیسری دلیل لمبائی ہے۔ substr () کی تیسری دلیل کو مندرجہ ذیل کمانڈ میں چھوڑ دیا گیا ہے۔ چونکہ کالم $ 1 سے شروع ہوتا ہے `awk` کمانڈ میں ، انڈیکس () فنکشن $ 3 واپس کرے گا ، اور کمانڈ $ 3 سے $ 4 پرنٹ ہوگی۔

$کیٹmarks.txt
$عجیب '{پرنٹ سبسٹر ($ 0 ، انڈیکس ($ 0 ، $ 3))}'marks.txt

مندرجہ بالا آؤٹ پٹ مندرجہ بالا کمانڈز چلانے سے پیدا ہوں گے۔

مثال 8: پرنٹف کا استعمال کرتے ہوئے فائل سے کالموں کی ایک رینج کو ترتیب سے پرنٹ کریں۔

درج ذیل `awk` کمانڈ 10 حروف کے لیے کافی جگہ مقرر کر کے mark.txt کے پہلے ، دوسرے اور تیسرے کالم کو چھاپے گی۔

$کیٹmarks.txt
$عجیب '// {printf'٪ 10s٪ 10s٪ 10s 10 n '، $ 1، $ 3، $ 2}'marks.txt

مندرجہ بالا آؤٹ پٹ مندرجہ بالا کمانڈز چلانے سے پیدا ہوں گے۔

نتیجہ

کمانڈ آؤٹ پٹ یا فائل سے کالم کی رینج پرنٹ کرنے کے مختلف طریقے ہیں۔ یہ ٹیوٹوریل ظاہر کرتا ہے کہ کس طرح `awk` کمانڈ لینکس صارفین کو ٹیبلر ڈیٹا سے مواد پرنٹ کرنے میں مدد دے سکتی ہے۔