از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش چاپ ستون اول یا آخرین ستون یا هر دو با استفاده از “awk”.
سرفصلهای مطلب
دستور awk لینوکس یک ابزار قدرتمند برای عملیات های مختلف است روی فایل های متنی مانند جستجو، جایگزینی و print. استفاده از آن با داده های جدولی آسان است زیرا به طور خودکار هر خط را به فیلدها یا ستون ها تقسیم می کند روی جداکننده میدان وقتی با یک فایل متنی کار می کنید که حاوی داده های جدولی است و می خواهید print داده های یک ستون خاص، سپس دستور awk بهترین گزینه است. در این آموزش به شما نشان خواهیم داد که چگونه این کار را انجام دهید print اولین ستون و/یا آخرین ستون یک خط یا فایل متنی.
اولین ستون و/یا آخرین ستون خروجی فرمان را چاپ کنید
بسیاری از دستورات لینوکس مانند دستور ‘ls’ خروجی های جدولی تولید می کنند. در اینجا، ما به شما نشان خواهیم داد که چگونه print اولین ستون و/یا آخرین ستون از خروجی فرمان ‘ls -l’.
مثال 1: اولین ستون خروجی دستور را چاپ کنید
دستور awk زیر خواهد بود print اولین ستون از خروجی فرمان ‘ls -l’.
$ ls -ل | بیخیال ‘{ print $1 }’
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
مثال 2: آخرین ستون یک خروجی فرمان را چاپ کنید
دستور awk زیر خواهد بود print آخرین ستون از خروجی فرمان ‘ls -l’.
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
مثال 3: اولین و آخرین ستون یک خروجی فرمان را چاپ کنید
دستور awk زیر خواهد بود print اولین و آخرین ستون از خروجی فرمان ‘ls -l’.
$ ls -ل | بیخیال ‘{ print $1, $NF }’
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
اولین ستون و/یا آخرین ستون یک فایل متنی را چاپ کنید
در اینجا، روش استفاده از دستور awk را به شما نشان خواهیم داد print اولین ستون و/یا آخرین ستون یک فایل متنی.
یک فایل متنی ایجاد کنید
برای دنبال کردن این آموزش، یک فایل متنی با نام ایجاد کنید customers.txt با مطالب زیر این فایل شامل سه نوع داده مشتری است: نام با شناسه، ایمیل و شماره تلفن. برای جداسازی این مقادیر از کاراکتر تب (\t) استفاده می شود.
جاناتون بینگ – 1001 jon@gmail.com 01967456323
مایکل جکسون – 2006 mic@gmail.com 01756235643
جانیفر لوپز – 3029 jani@gmail.com 01822347865
جان ابراهیم – 4235 john@gmail.com 01590078452
میرصابیر – 2756 mir@gmail.com 01189523978
مثال 4: اولین ستون یک فایل را بدون استفاده از جداکننده فیلد چاپ کنید
اگر در دستور «awk» از جداکننده فیلد استفاده نشده باشد، از یک فاصله به عنوان جداکننده پیش فرض فیلد استفاده می شود. دستور awk زیر خواهد بود print ستون اول با استفاده از جداکننده پیش فرض.
$ بیخیال ‘{print $1} customers.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. توجه داشته باشید که خروجی فقط نام مشتری را نشان می دهد زیرا فاصله به عنوان جداکننده فیلد اعمال می شود. راه حل این مشکل در مثال بعدی نشان داده شده است.
مثال 5: اولین ستون یک فایل را با جداکننده چاپ کنید
در اینجا از \t به عنوان جداکننده فیلد استفاده می شود print ستون اول فایل گزینه ‘-F’ برای تنظیم جداکننده فیلد استفاده می شود.
$ بیخیال -اف ‘\t’ ‘{print $1} customers.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. محتوای فایل بر اساس سه ستون تقسیم شده است روی \ t. بنابراین نام و شناسه مشتری به عنوان ستون اول چاپ می شود. اگر شما می خواهید print نام مشتری بدون شناسه، سپس به مثال بعدی ادامه دهید.
اگر شما می خواهید print نام مشتری بدون شناسه، سپس باید از «-» به عنوان جداکننده فیلد استفاده کنید. دستور awk زیر خواهد بود print نام مشتری فقط به عنوان ستون اول.
$ بیخیال -اف ‘-‘ ‘{print $1} customers.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خروجی شامل نام کامل مشتریان بدون شناسه آنها است.
مثال 6: آخرین ستون یک فایل را چاپ کنید
دستور awk زیر خواهد بود print آخرین ستون customers.txt. از آنجایی که در دستور از جداکننده فیلد استفاده نشده است، از فضا به عنوان جداکننده فیلد استفاده می شود.
$ بیخیال ‘{print $NF} customers.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. ستون آخر شامل شماره تلفن است، همانطور که در خروجی نشان داده شده است.
مثال 7: اولین و آخرین ستون یک فایل را چاپ کنید
دستور awk زیر خواهد بود print اولین و آخرین ستون های customers.txt. در اینجا، تب (\t) به عنوان جداکننده فیلد برای تقسیم محتوا به ستون ها استفاده می شود. در اینجا، تب (\t) به عنوان جداکننده برای خروجی استفاده می شود.
$ بیخیال -اف “\ t“ ‘{print $1 “\t” $NF}” customers.txt
پس از اجرای دستورات بالا خروجی زیر ظاهر می شود. محتوا توسط \t به سه ستون تقسیم می شود. ستون اول شامل نام و شناسه مشتری و ستون دوم شامل شماره تلفن است. ستون های اول و آخر با استفاده از \t به عنوان جداکننده چاپ می شوند.
نتیجه
دستور “awk” را می توان به روش های مختلفی برای دریافت ستون اول و/یا آخرین ستون از هر خروجی فرمان یا از داده های جدولی اعمال کرد. توجه به این نکته ضروری است که در دستور به جداکننده فیلد نیاز است و در صورت عدم ارائه، از فضا استفاده می شود.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 06:31:05