اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نحوه استفاده از عملگرهای مقایسه در دستور AWK در Linux بخش 4

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نحوه استفاده از عملگرهای مقایسه در دستور AWK در Linux بخش 4

    استفاده از دستور AWK به منظور سر و کله زدن با مقدارهای رشته ای یا عددی در یک خط از یک متن همچنین فیلتر کردن متن یا رشته های متنی با استفاده از عملگرهای مقایسه ای برای کاربران بسیار آسان میباشد.

    در این پارت از سری پست های AWK ما درباره چگونگی فیلتر متن یا رشته های متنی با استفاده از عملگرهای مقایسه ای خواهیم آموخت. اگر شما یک برنامه نویس هستید قطعا با عملگرهای مقایسه ای آشنا هستید اما برای افرادی که آشنا نیستند ما در بخش زیر توضیحاتی خواهیم داد.

    عملگرهای مقایسه ای در AWK چه هستند؟

    عملگرهای مقایسه ای در awk به منظور مقایسه مقدار اعداد یا رشته ها استفاده میشوند و به شرح زیر میباشند.

    < : بزرگتر از
    > : کوچکتر از
    <= : بزرگتر مساوی
    >= : کوچکتر مساوی
    == : مساوی
    != : نامساوی
    some_value ~ / pattern/ : درست در صورت match شدن some_value با patern
    some_value !~ / pattern/ : درست در صورت match نشدن some_value با patern

    اکنون که عملگرهای مقایسه ای موجود در AWK را مشاهده کردید با استفاده از مثال درک بهتری از آنها خواهیم یافت.

    در مثال زیر فایلی با نام food_list.txt داریم که یک لیست خرید برای آیتم های غذایی متفاوت است و من میخواهم که آیتم های غذایی که مقدار آنها کوچکتر یا مساوی 20 عدد باشد را با اضافه کردن ** به آخر هر خط متمایز و مشخص کنم.
    کد PHP:
    No      Item_Name               Quantity        Price
    1       Mangoes                    45           
    $3.45
    2       Apples                     25           
    $2.45
    3       Pineapples                 5            
    $4.45
    4       Tomatoes                   25           
    $3.45
    5       Onions                     15           
    $1.45
    6       Bananas                    30           
    $3.45 
    ساختار کلی استفاده از عملگرهای مقایسه ای در AWK به شرح زیر میباشد.
    کد PHP:
    # expression { actions; } 
    برای دستیابی به هدف بالا باید دستور زیر را اجرا کرد :
    کد PHP:
    [mohammad@localhost ~]$ awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt

    No      Item_Name               Quantity        Price
    1       Mangoes                    45           
    $3.45
    2       Apples                     25           
    $2.45    **
    3       Pineapples                 5            $4.45    **
    4       Tomatoes                   25           $3.45    **
    5       Onions                     15           $1.45    **
    6       Bananas                    30           $3.45    **
    [
    mohammad@localhost ~]$ 
    در مثال بالا 2 مورد مهم اتفاق میوفتد :

    عبارت اول ترکیب { action ; } و در حقیقت $3 <= 30 { printf “%s\t%s\n”, $0,”**” ; } خط های با تعداد کوچکتر یا مساوی 30 را print مینماید و در پایان هر خط ** اضافه میکند. مقدار quantity (تعداد) از طریق استفاده از متغییر فیلد $3 قابل دسترسی است.

    عبارت دوم ترکیب { action ; } و در حقیقت $3 > 30 { print $0 ;} خط هایی را که مقدار آنها بزرگتر از 30 باشد را بدون هیچ تغییری نمایش میدهد.

    یک نمونه مثال دیگر :
    کد PHP:
    [mohammad@localhost ~]$ awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20  { print $0 ;} ' food_list.txt

    No      Item_Name               Quantity        Price
    1       Mangoes                    45           
    $3.45
    2       Apples                     25           
    $2.45
    3       Pineapples                 5            
    $4.45    TRUE
    4       Tomatoes                   25           
    $3.45
    5       Onions                     15           
    $1.45    TRUE
    6       Bananas                    30           
    $3.45
    [mohammad@localhost ~]$ 

    در این مثال خط هایی که مقدار آنها کوچکتر مساوی 20 باشد را نمایش میدهیم و در انتهای هر خط کلمه TRUE را اضافه میکنیم.


    خلاصه :
    این پست در حقیقت یک مقاله مقدماتی روی عملگرهای مقایسه ای در AWK هست، بنابراین شما نیاز دارید که آپشن های بیشتر دیگر را بررسی و دنبال کنید.

    در صورتی که با هر گونه مشکل روبه رو شدید میتوانید در این بخش مطرح نمایید. خواندن مقاله پارت بعدی از سری مقالات awk را نیز فراموش نکنید، که شما را با عبارت های ترکیبی آشنا میکند.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 07-14-2019, 02:37 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X