دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۰
  • اسفند

جلسه ۲۵-۰۲ : Regular Expression با SED در یونیکس (UNIX)

  • دسته‌بندی‌ها :
جلسه ۲۵-۰۲ : Regular Expression با SED در یونیکس (UNIX)
    • جزئیات
    • نوع محتواآموزشی

      دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. Regular Expression با SED در یونیکس (UNIX) را در این بخش نیز ادامه خواهیم داد. بنابراین مباحثی چون دستور Substitution در یونیکس ، فلگ های جایگزینی (Substitution)، استفاده از جداکننده رشته جایگزین و غیره را داریم.

      Regular Expression با SED در یونیکس (UNIX)

      دستور Substitution در یونیکس

      دستور Substitution ، هر رشته ای را که مشخص می کنید را با هر رشته دیگری که مشخص کرده اید، جایگزین می کند.

      برای Substitution کردن یک رشته با رشته دیگر ، sed باید اطلاعاتی مربوط به جایی که رشته اول به پایان می رسد و رشته جایگزین شروع می شود، داشته باشد. برای این کار ، با رزرو دو رشته با کاراکتر slash (/) ، اقدام می کنیم.

      دستور زیر اولین وقایع را در یک خط string root با رشته amrood جایگزین می کند.

      مثال : 

      ذکر این نکته بسیار حائز اهمیت است که sed فقط اولین رخداد را در یک خط جایگزین می کند. اگر string root بیش از یک بار در یک خط رخ دهد ، فقط تطبیق اول جایگزین می شود.

      برای این که sed جایگزینی عمومی را انجام دهد، حرف g را در انتهای دستور به شرح زیر اضافه کنید.

      مثال : 

      فلگ های جایگزینی (Substitution)

      تعدادی فلگ مفید دیگر نیز وجود دارد که می توان علاوه بر فلگ g از آن استفاده کرد و همچنینی می توانید به طور همزمان بیش از یک مورد را مشخص کنید.

      ردیففلگ و شرح
      ۱g

      همه تطابق ها (match) را جایگزین می کند ، نه تنها تطبیق (match) اول را.

      ۲NUMBER

      فقط تطبیق NUMBERth جایگزین می کند.

      ۳p

      اگر جایگزینی  ایجاد شود ، فضای الگو (pattern space) را چاپ می کند.

      ۴w FILENAME

      اگر جایگزینی انجام شد ، نتیجه را برای FILENAME می نویسد.

      ۵I or i

      match ها به صورت غیرقابل حساس به حروف بزرگ و کوچک است

      ۶M or m

      این فلگ علاوه بر رفتار عادی کاراکترهای regular expression خاص ^ و $ ، این فلگ باعث می شود ^ رشته های خالی را بعد از یک خط جدید match کند و $ رشته های خالی را قبل از خط جدید match کند.

      استفاده از جداکننده رشته جایگزین

      فرض کنید شما باید جایگزینی رشته ای که شامل کاراکتر slash رو به جلو است، را انجام دهید. در این حالت می توانید با تهیه کاراکتر مشخص شده پس از s ، جداکننده دیگری را تعیین کنید.

      مثال : 

      در مثال بالا ، : را به عنوان جدا کننده به جای اسلش / استفاده کرده ایم، به دلیل این که سعی می کنیم به جای root/ ، ریشه (root) ساده جستجو کنیم.

      جایگزینی با فاصله خالی

      برای حذف رشته اصلی از فایل etc / passwd/ از رشته جایگزینی خالی (empty substitution string) استفاده کنید.

      مثال : 

      جایگزینی آدرس

      اگر می خواهید رشته sh را فقط با رشته quiet در خط ۱۰ جایگزین کنید ، می توانید آن را به شرح زیر مشخص کنید.

      مثال : 

      به طور مشابه ، برای انجام جایگزینی دامنه آدرس ، می توانید کاری مانند موارد زیر را انجام دهید.

      مثال : 

      همان طور که در خروجی می بینید ، در پنج خط اول، رشته sh به quiet تغییر پیدا کرده است ، اما بقیه خطوط دست نخورده باقی مانده اند.

      کلام پایانی

      در این بخش از آموزش یونیکس و مبحث Regular Expression با SED در یونیکس ، جایگزینی با فاصله خالی، دستور Substitution در یونیکس ، فلگ های جایگزینی (Substitution) و غیره را مورد بحث قرار دادیم. در بخش بعدی نیز این مبحث را ادامه خواهیم داد.

      QR:  جلسه ۲۵-۰۲ : Regular Expression با SED در یونیکس (UNIX)
      به اشتراک بگذارید