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



  • ۲۰
  • اسفند

جلسه ۰۷ : بررسی دستور Pipe و Filter در یونیکس

  • دسته‌بندی‌ها :
جلسه ۰۷ : بررسی دستور Pipe و Filter در یونیکس
    • جزئیات
    • نوع محتواآموزشی

      دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. بررسی دستور Pipe و Filter در یونیکس را در این بخش، خواهیم داشت.

      بررسی دستور Pipe و Filter در یونیکس

      در این بخش ، در مورد Pipe و Filter های موجود در یونیکس به تفصیل صحبت خواهیم کرد. می توانید دو دستور را به هم متصل کنید تا خروجی یک برنامه، به ورودی برنامه بعدی تبدیل شود. دو یا چند دستور متصل به این روش یک Pipe را تشکیل می دهند.

      برای ساختن Pipe ، یک نوار عمودی (|) را در خط فرمان بین دو دستور قرار دهید.

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

      فرمان grep

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

      مثال : 

      نام “grep” از دستور g/re/p (یک ویرایشگر خط Unix) گرفته شده است که به معنی “جستجوی یک عبارت منظم در سطح جهانی است و تمام سطرهای موجود در آن را چاپ می کند” (“globally search for a regular expression and print all lines containing it”).

      یک عبارت معمولی یا متن ساده (یک کلمه ، برای مثال) و / یا کاراکترهای ویژه ای است که برای تطبیق الگو استفاده می شود.

      ساده ترین استفاده از grep این است که به دنبال الگویی متشکل از یک کلمه واحد باشید. می توان از آن در pipe استفاده کرد به گونه ای که فقط آن خطوط فایل های ورودی که شامل یک رشته مشخص هستند به خروجی استاندارد ارسال شوند. اگر grep یک filename را برای خواندن به شما ارائه نمی دهد ، ورودی استاندارد آن را می خواند. این روش تمام برنامه های فیلتر است.

      مثال : 

      گزینه های مختلفی وجود دارد که می توانید به همراه دستور grep از آن ها استفاده کنید.

      ردیفگزینه ها و شرح
      ۱v-

      تمام خطوطی را که با الگو مطابقت ندارند را چاپ می کند.

      ۲n-

      تمام خطوطی را که با الگو مطابقت دارند را به همراه شماره خط شان چاپ می کند.

      ۳l-

      فقط نام فایل هایی که با خطوط مطابقت دارد را چاپ می کند (حرف “l”)

       

      ۴c-

      فقط شماره خطوطی که با الگو مططابقت دارد را چاپ می کند.

       

      ۵i-

      در صورتی که الگوی داده شده شامل حروف کوچک و بزرگ باشد، grep تفاوتی به آن ها قائل نمی شود و آن ها را نادیده می گیرد.

      حال اجازه دهید از یک عبارت regular استفاده کنیم که به grep می گوید: تمام خطوطی که در آن carol و به دنبالش در فاصله ای برابر با یک، یا بیش تر از یک حرف، کلمه ی Aug را مشاهده نمودید، آن خط را چاپ می کند.

      مثال : 

      بررسی دستور Pipe و Filter در یونیکس را با دستور sort ادامه می دهیم.

      دستور sort

      دستور sort ، خطوط متن را بر اساس حروف الفبا یا عددی مرتب می کند. در مثال زیر خطوط موجود در فایل food مرتب شده اند.

      مثال : 

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

      ردیفشرح
      ۱n-

      مرتب سازی های عددی (به عنوان مثال: ۱۰ بعد از ۲ مرتب می شود) ، فاصله ها و تب ها را نادیده می گیرد.

      ۲r-

      ترتیب مرتب سازی برعکس می شود.

      ۳f-

      هنگام مرتب سازی (Sort)، حروف بزرگ و کوچک را با هم در نظر می گیرد.

      ۴x+

      هنگام مرتب سازی، فیلدها را به تعداد x را نادیده می گیرد.

      بیش از دو دستور ممکن است به یک pipe وصل شوند. با استفاده از نمونه pipe قبلی با استفاده از grep ، می توانیم فایل های تغییر یافته در ماه آگوست را به ترتیب اندازه مرتب سازی کنیم.

      pipe زیر شامل دستورات ls ، grep و sort است.

      مثال : 

      این pipe تمام فایل های موجود در دایرکتوری شما را به ترتیب در ماه آگوست اصلاح می کند و آن ها را روی صفحه ترمینال چاپ می کند. گزینه ی sort + 4n چهار فیلد را پرش می کند (متن ها توسط فاصله ها از هم جدا می شوند) سپس خطوط را به ترتیب عددی مرتب می کنید.

      دستورات pg و more

      در صورتی که دستوری را اجرا می کنید که خروجی آن بیش تر از اندازه ی معمولِ اسکرین می باشد ، می توانید آن را با دستور more اجرا کنید تا صفحه بندی شود، یا از دستور pg به عنوان فیلتر استفاده کنید. وقتی صفحه پر از متن شد ، نمایش متوقف می شود.

      بیایید فرض کنیم که شما یک لیست دایرکتوری طولانی دارید. برای آسان تر خواندن لیست مرتب شده ، خروجی را از طریق زیر pipe کنید.

      مثال : 

      کلام پایانی

      در این بخ از آموزش یونیکس، مبحث بررسی دستور Pipe و Filter در یونیکس را دنبال نمودیم. در بخش بعدی با موضوع مدیریت Process ها در یونیکس در خدمتتون خواهیم بود. با وب سایت پی وی لرن همراه باشید.

      QR:  جلسه ۰۷ : بررسی دستور Pipe و Filter در یونیکس
      به اشتراک بگذارید