وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

0 18
زمان لازم برای مطالعه: 4 دقیقه


وظایف جایگزینی را می توان در لینوکس به روش های مختلفی انجام داد. دستور “sed” یکی از راه های انجام وظیفه جایگزینی است. این دستور می تواند برای جایگزینی متن در یک رشته یا یک فایل با استفاده از یک الگوی متفاوت استفاده شود. چگونه می توانید همه چیز را پس از الگوی مطابق با استفاده از دستور `sed` جایگزین کنید، در این آموزش نشان داده شده است.

همه چیز را بعد از مسابقه در یک رشته جایگزین کنید:

چگونه می توان بخشی از یک رشته را جایگزین کرد روی یک الگوی منطبق و PARTITION_COLUMN $ در این بخش از این آموزش نشان داده شده است. اما این متغیر در صورتی کار می کند که الگو با هر کلمه ای در ابتدا یا وسط رشته مطابقت داشته باشد. اگر الگو با آخرین کلمه رشته مطابقت داشته باشد، جایگزین متن نخواهد شد.

مثال-1: همه را بعد از مسابقه با استفاده از $PARTITION_COLUMN جایگزین کنید

دستور زیر کاراکتر ‘a’ را جستجو می کند و قسمت باقی مانده پس از ‘a’ با متن “یک سایت وبلاگ محبوب” جایگزین می شود. $PARTITION_COLUMN.* برای تعریف قسمت باقیمانده بعد از کاراکتر “a” استفاده می شود.

$ echo “LinuxHint یک وب سایت است” | sed “s/a $PARTITION_COLUMN.*/یک سایت وبلاگ محبوب/”

پس از اجرای دستور خروجی زیر ظاهر می شود. در اینجا، “یک وب سایت” با “یک سایت وبلاگ محبوب” جایگزین شده است.

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

الگوی زیر کلمه ‘ را جستجو می کندوب‘ در رشته و قسمت باقی مانده را با ‘ جایگزین کنیدوب“با متن،”یک سایت وبلاگ محبوب“اگر مطابقت وجود داشته باشد و”وب‘ بخشی از آخرین کلمه رشته نیست.

$ echo “LinuxHint یک وب سایت است” | sed “s/web.* $PARTITION_COLUMN.*/یک سایت وبلاگ محبوب/”

پس از اجرای دستور خروجی زیر ظاهر می شود. در اینجا “وب سایت” آخرین کلمه رشته است و هیچ جایگزینی به این دلیل انجام نشده است.

پیشنهاد می‌کنیم بخوانید:  روش جدا کردن یک جلسه در tmux

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

مثال-2: با استفاده از الگوی همه پس از مسابقه را جایگزین کنید

دستور زیر کلمه ‘ را جستجو می کندbash‘ به صورت سراسری در رشته و در صورت وجود کلمه در رشته، همه چیز را با کلمه جایگزین کنید. ‘g‘ در اینجا برای جستجوی جهانی استفاده می شود.

$ echo “من دوست دارم bash برنامه نویسی” | sed “s/bash.*/python اسکریپت/g”

پس از اجرای دستور خروجی زیر ظاهر می شود. اینجا، ‘bash’ در وسط رشته وجود دارد و جایگزینی انجام شده است.

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

همه چیز را بعد از مسابقه در یک فایل جایگزین کنید:

تمام محتوای یک خط خاص یا چندین خط یا خطوط باقی مانده از یک فایل پس از مطابقت را می توان با استفاده از ` جایگزین کردsedدستور. یک فایل متنی با نام ایجاد کنید presentance.txt با مطالب زیر برای تست نمونه های نشان داده شده در این قسمت.

presentance.txt

1108885 موجود است

1999979 موجود است

1769994 وجود ندارد

1105656 وجود ندارد

1455999 وجود ندارد

مثال -3: تمام محتوای یک خط از یک فایل را پس از مسابقه جایگزین کنید

دستور «sed» زیر، عدد 1769994 را در فایل جستجو می‌کند، و در صورتی که عدد در هر خطی از فایل وجود داشته باشد، با متن «1586844 موجود است» جایگزین می‌شود.

$ گربه allendence.txt

$ sed “s/1769994.*/1586844 موجود است/” presentance.txt

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

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

مثال -4: پس از تطبیق، تمام محتوای چند خط یک فایل را جایگزین کنید

دستور «sed» زیر استفاده از متغیر $PARTITION_COLUMN را برای جایگزینی چندین خط از فایل نشان می‌دهد. این فرمان «110» را در ابتدای هر خط از فایل جستجو می‌کند و همه چیز را با «110» با متن «Invalid Entry» جایگزین می‌کند، جایی که متن مطابق پیدا می‌شود.

$ گربه presentance.txt

پیشنهاد می‌کنیم بخوانید:  چگونه یک پوسته Bash را با دستور shopt سفارشی کنیم

$ sed “s/^110.* $PARTITION_COLUMN.*/ورودی نامعتبر/” presentance.txt

پس از اجرای دستورات خروجی زیر ظاهر می شود. ‘110’ در دو خط از فایل وجود دارد، و اینها با متن جایگزین جایگزین شده اند.
روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

مثال-5: پس از مطابقت، تمام محتوای یک خط از یک فایل را با استفاده از «c» جایگزین کنید

زیر `sedفرمان ” استفاده از ” را نشان می دهدجبرای جایگزینی همه چیز بعد از مسابقه. اینجا، ‘ج‘ تغییر را نشان می دهد. فرمان کلمه ” را جستجو می کندحاضر“در فایل و همه چیز از خط را با متن جایگزین کنید،”این خط جایگزین شده استاگر کلمه در هر خطی از فایل وجود داشته باشد.

$ گربه presentance.txt

$ sed ‘/present/c این خط جایگزین شده است’ presentance.txt

پس از اجرای دستورات خروجی زیر ظاهر می شود. در دو سطر اول فایل کلمه “حال” وجود دارد و این دو خط با متن جایگزین جایگزین شده است.

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

مثال-6: تمام محتوا را از یک خط از یک فایل مبتنی بر جایگزین کنید روی الگوی شروع و پایان

گاهی اوقات لازم است که متن را جایگزین کنید روی الگوی شروع و پایان دستور sed راه را برای تعریف الگوهای شروع و پایان برای جایگزینی خطوط از یک فایل نشان می دهد. این دستور آن خطوط را در فایلی که با عدد 110 شروع می شود و با کلمه “absent” ختم می شود، جستجو می کند و همه چیز را با کلمه “replaced” در جایی که الگوها مطابقت دارند جایگزین می کند.

$ گربه presentance.txt

$ sed -e ‘s/^110.*absent$/replaced/g’ presentance.txt

پس از اجرای دستورات خروجی زیر ظاهر می شود. در اینجا سطر اول و چهارم با عدد 110 شروع می شود، اما کلمه غایب فقط در سطر چهارم وجود دارد. بنابراین، خط چهارم فایل با متن جایگزین جایگزین شده است.

روش جایگزینی همه چیز بعد از الگو با استفاده از دستور sedروش جایگزینی همه چیز بعد از الگو با استفاده از دستور sed

نتیجه:

دستور `sed` ابزار بسیار قدرتمند لینوکس برای انجام انواع مختلف وظایف مربوط به پردازش متن است. وظیفه جایگزینی بر اساس روی الگوی تطبیق در این آموزش با استفاده از انواع مختلف الگوها در دستور sed مورد بحث قرار گرفته است. $PARTITION_COLUMN، ‘c’، و ‘.*’ در این آموزش برای جایگزینی هر خطی از فایل که در آن الگوی منطبق وجود دارد استفاده می شود. استفاده از برخی از کاراکترهای تعریف الگوها در اینجا نشان داده شده است، مانند ‘^’ و ‘$’. بسیاری از کاراکترهای دیگر برای تعریف الگو در عبارت منظم برای اهداف جستجو وجود دارند. امیدوارم این آموزش به خواننده کمک کند تا اصول جایگزین کردن همه چیز را از یک فایل پس از مسابقه بداند.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 07:56:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید