وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

NR Built-in AWK چیست؟

0 2
زمان لازم برای مطالعه: 5 دقیقه


AWK یک زبان برنامه نویسی بسیار قدرتمند است که می تواند مستقیماً از لینوکس استفاده شود terminal. با ارسال دستورات کار می کند روی که سیستم شما کار می کند. این زبان اسکریپت دارای طیف وسیعی از متغیرهای ویژه داخلی مختلف است و هدف این مقاله این است که در مورد یکی از این متغیرهای خاص و به دنبال آن استفاده از آن صحبت کنیم. آن متغیر “NR” نامیده می شود. اجازه دهید بیشتر بررسی کنیم که چگونه می توانیم از این متغیر در AWK استفاده کنیم.

NR Built-in AWK چیست؟

“NR” یک متغیر داخلی ویژه AWK است که مخفف “تعداد رکوردها” است. این متغیر برای رسیدگی به تعداد رکوردهای موجود در فایل های مشخص شده استفاده می شود.

نمونه هایی از استفاده از NR Built-in AWK در اوبونتو 20.04:

برای کسب اطلاعات بیشتر در مورد استفاده از AWK داخلی NR، باید نمونه‌های زیر را که پیاده‌سازی شده‌اند مرور کنید. روی یک سیستم اوبونتو 20.04. با این حال، قبل از صحبت در مورد این مثال‌ها، می‌خواهیم فایل متنی نمونه‌ای را که در فهرست اصلی خود با نام Names.txt ایجاد کرده‌ایم، با شما به اشتراک بگذاریم. این فایل شامل نام چند نفر و به دنبال سن آنها می باشد. ما از همان فایل متنی برای نمایش هر چهار مثال استفاده خواهیم کرد. این فایل متنی به شرح زیر است:

NR Built-in AWK چیست؟

مثال شماره 1: نمایش اعداد خطوط با رکوردها در یک فایل متنی:

در این مثال، ما می‌خواهیم تمام رکوردهای فایل متنی مورد نظر خود را به گونه‌ای نمایش دهیم که به هر رکورد به دنبال یک ترتیب صعودی، یک شماره خط خاص اختصاص داده شود. در بالا متوجه شده اید که فایل متنی مورد استفاده ما حاوی برخی رکوردها بود، اما آنها بدون شماره خط بودند. علاوه بر این، رکوردهای اینجا به خطوط متمایز متن موجود در یک فایل متنی اشاره دارد. به عنوان مثال، اگر یک فایل متنی دارای پنج خط مختلف باشد، می گوییم که دارای پنج رکورد مختلف است. برای امکان پذیر ساختن عبارت فوق، یعنی نمایش اعداد خطوط به همراه رکوردهای فایل متنی مورد نظر خود، دستور زیر را در برنامه خود اجرا می کنیم. terminal:

$ بیخیال{چاپ NR،$0}‘ names.txt

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

در این دستور، کلمه کلیدی “awk” به سیستم ما می گوید که ما در حال تلاش برای اجرای دستوری با استفاده از زبان برنامه نویسی AWK هستیم. سپس، ما یک فرمان “print” داریم که با کلمه کلیدی “NR” و متغیر ویژه “$0” همراه است. اکنون، این قسمت از دستور به منظور نمایش شماره خطوط به همراه رکوردهای موجود در فایل متنی مورد نظر ما عمل می کند. در نهایت نام فایل متنی مورد نظر خود را در این دستور قرار داده ایم تا به راحتی قابل خواندن باشد. ما این دستور را به سادگی با فشردن کلید Enter اجرا کرده ایم.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از متغیرهای محیطی در دستور Sed

به راحتی می توانید ببینید روی را terminal که در نتیجه اجرای این دستور، محتویات فایل متنی مورد نظر ما، یعنی تمام رکوردهای فایل متنی ما، به همراه شماره خطوط مربوطه به شکل زیر نمایش داده شد:

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

مثال شماره 2: نمایش رکوردهای یک فایل متنی در محدوده مشخص:

گاهی اوقات، شما نمی خواهید تمام رکوردهای فایل بیشتر نمایش داده یا پردازش شوند. بلکه فقط می خواهید از رکوردهایی استفاده کنید که در یک محدوده مشخص قرار دارند. بنابراین در این مثال می خواهیم تمام رکوردهای فایل متنی مورد نظر نمایش داده شوند روی را terminal که در محدوده شماره خط مشخص شده ما قرار دارد. برای درک بیشتر این موضوع، ابتدا باید به دستور زیر که برای این منظور استفاده می شود نگاه کنید:

$ بیخیالNR==4، NR==8 {چاپ NR،$0}‘ names.txt

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

در این دستور، کلمه کلیدی “awk” به سیستم ما می گوید که ما در حال تلاش برای اجرای دستوری با استفاده از زبان برنامه نویسی AWK هستیم. سپس عبارت ‘NR==4, NR==8’ را داریم که محدوده رکوردهای نمایش داده شده را مشخص می کند، یعنی با استفاده از این عبارت خاص، رکوردهای ما از خط شماره 4 تا 8 (شامل) نمایش داده می شود. روی را terminal. شما می توانید این محدوده را با توجه به انتخاب خود تعریف کنید. پس از آن، دستور “print” را داریم که با کلمه کلیدی “NR” و متغیر ویژه “$0” همراه است. اکنون، این قسمت از دستور به منظور نمایش شماره خطوط به همراه رکوردهای مشخص شده موجود در فایل متنی مورد نظر ما است. در نهایت نام فایل متنی مورد نظر خود را در این دستور قرار داده ایم تا به راحتی قابل خواندن باشد. ما این دستور را به سادگی با فشردن کلید Enter اجرا کرده ایم.

به راحتی می توانید تجسم کنید روی را terminal که در نتیجه اجرای این دستور، محتوای خاص فایل متنی مورد نظر ما، یعنی تمام رکوردهای فایل متنی ما که در محدوده مشخص شده قرار دارند، به همراه شماره خطوط مربوطه نمایش داده می شوند، همانطور که در تصویر زیر نشان داده شده است:

پیشنهاد می‌کنیم بخوانید:  بهترین راه برای یادگیری اسکریپت Bash چیست؟

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

مثال شماره 3: نمایش اعداد خطوط با رکوردهای خاص در یک فایل متنی که با علامت ویژه “-” از هم جدا شده اند:

برای خوانایی بیشتر محتویات یک فایل متنی، ممکن است بخواهید با استفاده از هر علامت خاصی، شماره خطوط را از رکوردها جدا کنید. علاوه بر این، ممکن است بخواهید ستون خاصی از تمام رکوردها نمایش داده شود. ما این مثال را برای تشریح روش نمایش اعداد خطوط با ستون خاص رکوردهای یک فایل متنی که با علامت ویژه “-” از هم جدا شده اند، طراحی کرده ایم. برای دستیابی به این نوع خروجی، باید دستور زیر را اجرا کنید:

$ بیخیال{چاپ NR “-“, 1 دلار}‘ names.txt

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

این دستور تقریباً شبیه دستوری است که برای مثال اول خود اجرا کردیم. با این حال، تنها تفاوت این است که ما جداکننده “-” را در آن مشخص کرده ایم. علاوه بر این، به جای استفاده از متغیر ویژه «$0»، از متغیر ویژه «$1» استفاده کرده‌ایم که مشخص می‌کند تنها ستون اول تمام رکوردهای فایل متنی باید چاپ شود.

در خروجی نشان داده شده در زیر، می بینید که تنها ستون اول تمام رکوردهای فایل متنی مورد نظر ما نمایش داده شده است. با این حال، اعداد خطوط به خوبی از رکوردها با کمک نماد ویژه “-” جدا شدند.

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

مثال شماره 4: نمایش تعداد کل رکوردها در یک فایل متنی:

گاهی اوقات، ممکن است بخواهید تعداد کل رکوردهای فایل نمایش داده شود روی را terminal. برای انجام این کار کافیست دستور زیر را اجرا کنید:

$ بیخیال ‘پایان {چاپ NR}‘ names.txt

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

در این دستور، کلمه کلیدی “END” به سیستم می گوید که فقط باید تعداد رکوردهای فایل متنی را شمارش کند و عبارت “print NR” به سیستم شما می گوید که تعداد کل رکوردها را چاپ کند. روی را terminal.

می دانیم که در کل 10 رکورد در فایل متنی مورد نظر خود داشتیم و این نیز از خروجی دستور فوق که در تصویر زیر نشان داده شده است تأیید می شود:

NR Built-in AWK چیست؟NR Built-in AWK چیست؟

نتیجه:

این مقاله با معرفی مختصری از زبان اسکریپت نویسی AWK آغاز شد. نکته اصلی این راهنما آموزش استفاده از متغیر ویژه “NR” داخلی AWK بود. ابتدا مروری بر این متغیر ویژه ارائه کردیم و در ادامه چهار مثال مختلف ارائه کردیم که با کمک آنها می توانید کاربرد آن را درک کنید. هنگامی که این نمونه ها را مرور کنید، در موقعیت خوبی برای استفاده موثر از این متغیر ویژه در AWK خواهید بود.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 12:26:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید