از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
AWK NF چیست؟
سرفصلهای مطلب
تابع “AWK” یک ابزار لینوکس است که برای تجزیه و تحلیل متن استفاده می شود که کنترل قوی داده را ارائه می دهد. برای استفاده از برنامه کامپیوتری لینوکس و عملکرد “AWK”، کاربران می توانند نتایج آماده شده را ارزیابی، اصلاح و تولید کنند. متغیر “AWK NF” برای نشان دادن تعداد فایل ها، عناصر یا موارد دیگر در یک خط از هر فایل استفاده می شود.
کار AWK NF
برنامه “AWK” عمل می کند روی برنامه هایی که حاوی قوانینی هستند که از الگوها و اقدامات مختلفی تشکیل شده اند که انجام می شوند روی متنی که با الگو مطابقت دارد یک الگو و عمل با هم یک قانون را تشکیل می دهند. سپس کل برنامه “AWK” در یک نقل قول محصور می شود.
اکنون، ما فقط از یک مثال ساده استفاده میکنیم تا نشان دهیم وقتی «who» را در اوبونتو 20.04 تایپ میکنیم چه اتفاقی میافتد. terminal. این دستور اطلاعاتی در مورد کاربر و همچنین زمان و تاریخ فعلی نمایش می دهد.
این دستور را با کلیک روی enter اجرا می کنیم روی صفحهکلیدی که تاریخ و زمان را به ترتیب بهعنوان «2022-12-08» و «15:06» چاپ میکند، قبل از انتشار مقداری فضای خالی و نام کاربر بهعنوان «لینوکس».
بهطور پیشفرض، «AWK» یک فیلد را بهعنوان رشتهای از کاراکترها تفسیر میکند که در ابتدا و انتهای یک خط در فضای خالی قرار دارند. در اینجا، روش نوشتن دستور با استفاده از پارامترهای “AWK” و “who” برای بازیابی اولین فیلد با استفاده از علامت دلار و عدد 1 ($1) را نشان میدهیم. اگر میخواهیم اولین فیلد را از یک فایل متنی یا دادههای دیگر بازیابی کنیم، از علامت دلار «1$» با یکی استفاده میکنیم. برای این کار از دستوری استفاده می کنیم که در آن ابتدا “who” را می نویسیم. سپس از این “|” استفاده می کنیم بار. سپس با فشردن کلید فاصله فاصله می گذاریم روی صفحه کلید. سپس “awk” را می نویسیم. سپس از یک کاما معکوس و به دنبال آن براکت های فرفری استفاده می کنیم. در نهایت از کلمه print و علامت $1 در داخل این براکت ها استفاده می کنیم.
همانطور که در تصویر خروجی قبلی مشاهده می کنید، زمانی که ما فقط از “who” در قسمت استفاده می کنیم terminal و این را اجرا کنید، نام کاربری را به همراه اطلاعات لازم که شامل تاریخ و ساعت است نمایش می دهد. با این حال، از آنجایی که ما از «print $1» با «AWK» در دستور قبلی استفاده میکنیم، فقط فیلد اول را چاپ میکند زیرا «$1» برای چاپ اولین فیلد فایل در میان موارد دیگر استفاده میشود.
ایجاد یک فایل متنی روی دسکتاپ با استفاده از ترمینال و چاپ تمام محتوای آن با “AWK”
از آنجایی که “AWK” برای چاپ کل محتویات یک فایل استفاده می شود روی را terminal، در مرحله اول یک فایل متنی ایجاد می کنیم و اطلاعات فایل را چاپ می کنیم روی را terminal. در اینجا یک فایل متنی ایجاد می کنیم روی دسکتاپ با استفاده از terminal. برای این کار، دستوری را می نویسیم که در آن “nano” را به عنوان ویرایشگر متن می نویسیم. سپس از علامت (~) و به دنبال آن علامت “/” استفاده می کنیم. سپس، “دسکتاپ” را می نویسیم زیرا یک فایل ایجاد می کنیم روی دسکتاپ و به دنبال آن علامت اسلش “/” قرار می گیرد. دوباره نام فایلی را که می خواهیم بسازیم می نویسیم. در نهایت فایلی به نام “textfile” با پسوند “.txt” ایجاد می کنیم زیرا یک فایل متنی است.
بنابراین، الف terminal همانطور که در تصویر زیر نشان داده شده است، هنگامی که این دستور را وارد می کنیم، یک صفحه خالی برای ما نمایش می دهد:
ما داده ها را با تایپ کردن در آن وارد می کنیم terminal که می خواهیم در فایل متنی ذخیره کنیم. برای این کار پنج خط ایجاد می کنیم. که اولین مورد حاوی کلمه “سلام” است. دومی حاوی “هی” است. سوم شامل “سلام” است. چهارمی شامل دو عنصر «خداحافظ» و «123» است. و خط پنجم مانند تصویر زیر خالی است:
هنگامی که پس از وارد کردن داده ها در فایل textfile.txt “Ctrl-x” را فشار می دهیم، گزینه “بله” یا “خیر” ظاهر می شود. روی صفحه نمایش می دانیم که می خواهیم فایل را ذخیره کنیم. بنابراین، Ctrl-y را فشار می دهیم تا فایل ذخیره شود و فایل با موفقیت ایجاد می شود.
تصویر زیر فایل نشان داده شده را نشان می دهد:
همانطور که می دانیم فایل ذخیره شده است روی دسکتاپ ابتدا باید با استفاده از دستور cd Desktop/ یک دایرکتوری به دسکتاپ اضافه کنیم و سپس کلید enter را فشار دهیم.
اکنون از تابع “AWK” برای بازیابی محتویات فایل جدید ایجاد شده “textfile.txt” و نمایش آنها استفاده می کنیم. روی صفحه نمایش برای این کار از دستوری استفاده می کنیم که در آن ابتدا awk می نویسیم. سپس از کاماهای معکوس داخل این استفاده می کنیم. براکت های فرفری را می گذاریم و می نویسیم “print $0”. پس از آن از یک فاصله استفاده می کنیم. در نهایت، نام فایل را می نویسیم، “textfile.txt”.
حال وقتی این دستور را اجرا می کنیم، محتویات فایل متنی همانطور که در تصویر زیر مشاهده می کنید نشان داده می شود. در خط اول این فایل کلمه سلام و به دنبال آن هی می باشد. کلمه “سلام” ظاهر می شود روی خط سوم دو مورد ذکر شده است روی خط چهارم و خط پنجم خالی است.
نمایش محتوای فایل با شماره خطوط
با استفاده از متغیر “NR” در دستور، محتویات فایل را همراه با شماره خط در قسمت بعدی چاپ می کنیم. برای این کار از دستوری استفاده می کنیم که در آن ابتدا awk می نویسیم. سپس بعد از فاصله، از کاما معکوس استفاده می کنیم. داخل آن براکت های فرفری را قرار می دهیم. سپس، چاپ را می نویسیم. در نهایت “NR” را می نویسیم. پس از آن، ما یک کاما قرار داده و می نویسیم “$0”. سپس از براکت و کاما معکوس خارج می شویم. در نهایت، نام فایل را می نویسیم، “textfile.txt”.
همانطور که در نتیجه مشاهده می کنید، محتوای فایل با شماره خطوط نمایش داده می شود که نشان می دهد حاوی “5” خط است.
نمایش مقدار کلی داده در هر خط با استفاده از NF
در این بخش، تعداد کل عناصر در هر خط را نشان خواهیم داد. برای این کار از دستوری استفاده می کنیم که در آن ابتدا “awk” می نویسیم و سپس همان مراحل دستور قبلی را انجام می دهیم، اما بعد از نوشتن پارامتر “print” از متغیر “NF” استفاده می کنیم. بعد، براکت های فرفری و کاماهای معکوس را می بندیم. سپس نام فایل “textfile.txt” را می نویسیم.
تعداد موارد موجود در فایل اکنون در خروجی نشان داده شده است. سه خط اول شامل عناصر “1” است. خط چهارم شامل عناصر “2” است. و خط آخر در فایل خالی است. بنابراین، “0” را نشان می دهد.
حذف خطوط خالی
در این قسمت خط خالی را از فایل حذف می کنیم. برای این کار از دستوری استفاده می کنیم که در آن ابتدا از “awk” استفاده می کنیم. سپس از “NF>0” استفاده می کنیم که شرطی است که می گوید اگر تعداد عناصر بیشتر از “0” باشد خط را چاپ کنید. در غیر این صورت، خط آن را نشان نمی دهد. سپس از همان روشی که در قسمت قبل انجام دادیم استفاده می کنیم.
از آنجایی که خط پنج فایل خالی است، نمایش داده نمی شود روی صفحه نمایش در عوض، فقط خطوطی که شامل موارد یا عناصر هستند نشان داده می شوند. بنابراین، چهار خط اول فایل به دلیل اینکه حاوی داده است نمایش داده می شود، در حالی که خط آخر به دلیل نداشتن داده حذف می شود.
نتیجه
در این مقاله، ما در مورد روش استفاده از تابع “AWK NF” در اوبونتو 20.04 برای چاپ داده ها یا اطلاعات فایل های متنی صحبت کردیم. در مرحله اول، روش عملکرد عملکرد “AWK” را نشان دادیم. در مرحله دوم یک فایل متنی ایجاد کردیم روی دسکتاپ و از پارامترهای مختلف تابع “AWK” مانند “NR” برای چاپ خطوط فایل با اعداد استفاده کرد. در مرحله بعد، از “NF” برای شمارش تعداد عناصر موجود در هر خط از فایل استفاده کردیم. در مرحله آخر با اعمال یک شرط با استفاده از “NF” خط خالی را از فایل حذف کردیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 14:32:03