از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش رد شدن از خط اول یک فایل با استفاده از «awk».
سرفصلهای مطلب
استفاده های مختلفی از دستور awk در لینوکس وجود دارد. برای مثال می توان از آن استفاده کرد print محتوای یک فایل متنی خط اول بسیاری از فایل های متنی حاوی عنوان فایل است و گاهی اوقات هنگام چاپ محتوای فایل باید از خط اول صرف نظر کرد. در این آموزش، روش انجام این کار را با استفاده از دستور awk به شما نشان خواهیم داد.
یک فایل متنی ایجاد کنید
برای دنبال کردن این آموزش، یک فایل متنی جدا شده با برگه به نام ایجاد کنید booklist.txt با مطالب زیر این فایل شامل فهرستی از کتاب ها با نویسندگان مربوطه است. در این آموزش به شما نشان خواهیم داد که چگونه این کار را انجام دهید print قسمت های مختلف این فایل پس از پرش از خط اول.
خط فرمان کونگ فو جیسون کانن
خط فرمان لینوکس تراویس غرفه
مایک مک گراث را در مراحل آسان بشکنید
یونیکس در مراحل آسان مایک مک گراث
مثال 1: خط اول یک فایل را با استفاده از NR و عملگر ‘>’ رد کنید
متغیر NR تعداد رکوردهای یک فایل را نشان می دهد. دستور awk زیر از متغیر NR برای پرش از خط اول یک فایل استفاده می کند. مقدار NR برای خط اول 1 است. دستور زیر خواهد بود print خطوطی که مقدار NR برای آنها بزرگتر از 1 است.
$ بیخیال “(NR>1)” booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی شامل تمام خطوط غیر از خط اول فایل است.
مثال 2: با استفاده از NR و عملگر ‘!=’ از خط اول رد شوید
دستور awk زیر شبیه به مثال قبلی است. با این حال، عملگر مقایسه ‘!=’ در اینجا به جای ‘>’ استفاده می شود.
$ بیخیال ‘NR!=1’ booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی تمام خطوط غیر از خط اول فایل را نشان می دهد.
مثال 3: خط اول یک فایل را با استفاده از یک دستور شرطی رد کنید
دستور awk زیر خواهد بود print خطوط فایل اگر عبارت if درست باشد. در اینجا، دستور if فقط زمانی درست خواهد بود که مقدار NR برابر با 1 نباشد.
$ بیخیال ‘{if (NR!=1) {print}}’ booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی شامل تمام خطوط به جز خط اول فایل است.
مثال 4: نام کتاب ها را از فایل چاپ کنید اما خط اول را رد کنید
در این مثال از دو دستور awk استفاده شده است print همه نام های کتاب به جز نام اول دستور ‘awk’ ستون اول را از فایل مبتنی بر آن می خواند روی جداکننده فیلد (\t) و خروجی را به فرمان دوم «awk» ارسال کنید. دومین فرمان «awk» خواهد بود print خروجی مورد نظر
$ بیخیال -اف “\ t“ ‘{print $1} booklist.txt | بیخیال ‘NR!=1 {print}’
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی همه نام های کتاب را به جز نام کتاب اول نشان می دهد.
مثال 5: محتوای فایل را پس از پرش از خط اول فرمت کنید
گزینه ‘-F’، متغیر NR و تابع printf در دستور ‘awk’ زیر برای تولید خروجی فرمت شده پس از پرش از خط اول استفاده می شود. این دستور محتوای فایل را به ستون ها تقسیم می کند روی \t و printf خواهد شد print ستون اول و دوم زمانی که مقدار NR حداقل 2 باشد.
$ بیخیال -اف ‘\t’ ‘NR>=2 {printf “%30s %20s\n”, $1, $2}’ booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی محتوای فرمت شده فایل را به استثنای خط اول فایل نشان می دهد.
مثال 6: نام کتاب ها را پس از رد شدن از خط اول با استفاده از NR و NF چاپ کنید
دستور awk زیر از گزینه -F و NR و NF استفاده می کند print نام کتاب پس از رد شدن از اولین کتاب گزینه ‘-F’ برای جداسازی محتوای پایه فایل استفاده می شود روی \ t. NR برای پرش از خط اول استفاده می شود و NF برای پرش استفاده می شود print فقط ستون اول
$ بیخیال -اف ‘\t’ ‘NR>1 && NF=1’ booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی شامل نام تمام کتاب های موجود در فایل به جز نام کتاب اول است.
مثال 7: نام نویسنده های فرمت شده را پس از پرش از خط اول چاپ کنید
دستور «awk» زیر از گزینه «-F» و یک دستور شرطی استفاده می کند print نویسنده پس از رد شدن از سطر اول نام می برد. در اینجا مقدار NR در شرط if استفاده می شود. در اینجا، «نام نویسنده:\n\n» بهعنوان خط اول بهجای محتوای خط اول چاپ میشود. نام نویسنده از فایل برای مقادیر دیگر NR چاپ خواهد شد.
$ بیخیال -اف ‘\t’ ‘ {if (NR==1) printf “\nنام نویسنده:\n\n”; else printf “%s\n”, $2}’ booklist.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی متن “Author Name:” را با یک خط جدید نشان می دهد و همه نام نویسنده به جز نام اول چاپ می شود.
نتیجه
خط اول یک فایل را می توان با استفاده از دستورات مختلف لینوکس رد کرد. همانطور که در این آموزش نشان داده شده است، راه های مختلفی برای پرش از خط اول یک فایل با استفاده از دستور awk وجود دارد. قابل توجه است که متغیر NR دستور awk می تواند برای پرش از خط اول هر فایل استفاده شود.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 06:41:05