از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed
سرفصلهای مطلب
وظایف جایگزینی را می توان در لینوکس به روش های مختلفی انجام داد. دستور “sed” یکی از راه های انجام وظیفه جایگزینی است. این دستور می تواند برای جایگزینی متن در یک رشته یا یک فایل با استفاده از یک الگوی متفاوت استفاده شود. چگونه می توانید همه چیز را پس از الگوی مطابق با استفاده از دستور `sed` جایگزین کنید، در این آموزش نشان داده شده است.
همه چیز را بعد از مسابقه در یک رشته جایگزین کنید:
چگونه می توان بخشی از یک رشته را جایگزین کرد روی یک الگوی منطبق و PARTITION_COLUMN $ در این بخش از این آموزش نشان داده شده است. اما این متغیر در صورتی کار می کند که الگو با هر کلمه ای در ابتدا یا وسط رشته مطابقت داشته باشد. اگر الگو با آخرین کلمه رشته مطابقت داشته باشد، جایگزین متن نخواهد شد.
مثال-1: همه را بعد از مسابقه با استفاده از $PARTITION_COLUMN جایگزین کنید
دستور زیر کاراکتر ‘a’ را جستجو می کند و قسمت باقی مانده پس از ‘a’ با متن “یک سایت وبلاگ محبوب” جایگزین می شود. $PARTITION_COLUMN.* برای تعریف قسمت باقیمانده بعد از کاراکتر “a” استفاده می شود.
پس از اجرای دستور خروجی زیر ظاهر می شود. در اینجا، “یک وب سایت” با “یک سایت وبلاگ محبوب” جایگزین شده است.
الگوی زیر کلمه ‘ را جستجو می کندوب‘ در رشته و قسمت باقی مانده را با ‘ جایگزین کنیدوب“با متن،”یک سایت وبلاگ محبوب“اگر مطابقت وجود داشته باشد و”وب‘ بخشی از آخرین کلمه رشته نیست.
پس از اجرای دستور خروجی زیر ظاهر می شود. در اینجا “وب سایت” آخرین کلمه رشته است و هیچ جایگزینی به این دلیل انجام نشده است.
مثال-2: با استفاده از الگوی همه پس از مسابقه را جایگزین کنید
دستور زیر کلمه ‘ را جستجو می کندbash‘ به صورت سراسری در رشته و در صورت وجود کلمه در رشته، همه چیز را با کلمه جایگزین کنید. ‘g‘ در اینجا برای جستجوی جهانی استفاده می شود.
پس از اجرای دستور خروجی زیر ظاهر می شود. اینجا، ‘bash’ در وسط رشته وجود دارد و جایگزینی انجام شده است.
همه چیز را بعد از مسابقه در یک فایل جایگزین کنید:
تمام محتوای یک خط خاص یا چندین خط یا خطوط باقی مانده از یک فایل پس از مطابقت را می توان با استفاده از ` جایگزین کردsedدستور. یک فایل متنی با نام ایجاد کنید presentance.txt با مطالب زیر برای تست نمونه های نشان داده شده در این قسمت.
presentance.txt
1999979 موجود است
1769994 وجود ندارد
1105656 وجود ندارد
1455999 وجود ندارد
مثال -3: تمام محتوای یک خط از یک فایل را پس از مسابقه جایگزین کنید
دستور «sed» زیر، عدد 1769994 را در فایل جستجو میکند، و در صورتی که عدد در هر خطی از فایل وجود داشته باشد، با متن «1586844 موجود است» جایگزین میشود.
$ sed “s/1769994.*/1586844 موجود است/” presentance.txt
خروجی زیر با اجرای دستورات ظاهر می شود. در اینجا شماره جستجو در خط سوم فایل وجود دارد و جایگزینی انجام شده است.
مثال -4: پس از تطبیق، تمام محتوای چند خط یک فایل را جایگزین کنید
دستور «sed» زیر استفاده از متغیر $PARTITION_COLUMN را برای جایگزینی چندین خط از فایل نشان میدهد. این فرمان «110» را در ابتدای هر خط از فایل جستجو میکند و همه چیز را با «110» با متن «Invalid Entry» جایگزین میکند، جایی که متن مطابق پیدا میشود.
$ sed “s/^110.* $PARTITION_COLUMN.*/ورودی نامعتبر/” presentance.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود. ‘110’ در دو خط از فایل وجود دارد، و اینها با متن جایگزین جایگزین شده اند.
مثال-5: پس از مطابقت، تمام محتوای یک خط از یک فایل را با استفاده از «c» جایگزین کنید
زیر `sedفرمان ” استفاده از ” را نشان می دهدجبرای جایگزینی همه چیز بعد از مسابقه. اینجا، ‘ج‘ تغییر را نشان می دهد. فرمان کلمه ” را جستجو می کندحاضر“در فایل و همه چیز از خط را با متن جایگزین کنید،”این خط جایگزین شده استاگر کلمه در هر خطی از فایل وجود داشته باشد.
$ sed ‘/present/c این خط جایگزین شده است’ presentance.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود. در دو سطر اول فایل کلمه “حال” وجود دارد و این دو خط با متن جایگزین جایگزین شده است.
مثال-6: تمام محتوا را از یک خط از یک فایل مبتنی بر جایگزین کنید روی الگوی شروع و پایان
گاهی اوقات لازم است که متن را جایگزین کنید روی الگوی شروع و پایان دستور sed راه را برای تعریف الگوهای شروع و پایان برای جایگزینی خطوط از یک فایل نشان می دهد. این دستور آن خطوط را در فایلی که با عدد 110 شروع می شود و با کلمه “absent” ختم می شود، جستجو می کند و همه چیز را با کلمه “replaced” در جایی که الگوها مطابقت دارند جایگزین می کند.
$ sed -e ‘s/^110.*absent$/replaced/g’ presentance.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود. در اینجا سطر اول و چهارم با عدد 110 شروع می شود، اما کلمه غایب فقط در سطر چهارم وجود دارد. بنابراین، خط چهارم فایل با متن جایگزین جایگزین شده است.
نتیجه:
دستور `sed` ابزار بسیار قدرتمند لینوکس برای انجام انواع مختلف وظایف مربوط به پردازش متن است. وظیفه جایگزینی بر اساس روی الگوی تطبیق در این آموزش با استفاده از انواع مختلف الگوها در دستور sed مورد بحث قرار گرفته است. $PARTITION_COLUMN، ‘c’، و ‘.*’ در این آموزش برای جایگزینی هر خطی از فایل که در آن الگوی منطبق وجود دارد استفاده می شود. استفاده از برخی از کاراکترهای تعریف الگوها در اینجا نشان داده شده است، مانند ‘^’ و ‘$’. بسیاری از کاراکترهای دیگر برای تعریف الگو در عبارت منظم برای اهداف جستجو وجود دارند. امیدوارم این آموزش به خواننده کمک کند تا اصول جایگزین کردن همه چیز را از یک فایل پس از مسابقه بداند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 07:56:06