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

سرور مجازی NVMe

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

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


یکی از دستورات مفید و قدرتمند لینوکس دستور sed است. این دستور برای انجام انواع مختلف وظایف در لینوکس مانند درج، به روز رسانی و حذف یک متن یا خط خاص استفاده می شود. روی مسابقه. با استفاده از دستور “sed” می توانید یک متن را در یک رشته یا یک فایل به روش های مختلف وارد کنید.

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

یک خط در رشته وارد کنید

در صورتی که الگوی تعریف شده در دستور با هر بخشی از مقدار رشته مطابقت داشته باشد، می توان با استفاده از دستور “sed” بعد از هر مقدار رشته، یک خط جدید درج کرد.

مثال زیر نشان می‌دهد که اگر رشته خاصی در هر جایی از مقدار رشته وجود داشته باشد، چگونه می‌توان یک خط جدید پس از یک مقدار رشته اضافه کرد.

مثال-1: پس از یافتن یک مطابقت، یک خط را در یک رشته وارد کنید

دستور زیر عبارت “inng” را در رشته “من برنامه نویسی را دوست دارم” و یک خط متن “آیا برنامه نویسی را دوست دارید؟” جستجو می کند. در صورت وجود رشته جستجو، بعد از رشته درج می شود.

در اینجا، کاراکتر “&” برای درج خط بعد از رشته استفاده می شود.

$ echo “من برنامه نویسی را دوست دارم.” | sed ‘s/inng/& برنامه نویسی را دوست دارید؟/’

خروجی زیر نشان می دهد که “inng” در رشته وجود ندارد و هیچ خطی بعد از رشته درج نشده است.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

دستور زیر “ing” را جستجو می کند. در رشته، “من برنامه نویسی را دوست دارم” و در رشته وجود دارد.

$ echo “من برنامه نویسی را دوست دارم.” | sed ‘s/ing./& برنامه نویسی را دوست دارید؟/’

خروجی زیر نشان می دهد که خط جدید بعد از رشته اضافه شده است.

پیشنهاد می‌کنیم بخوانید:  روش تغییر رنگ خروجی اکو در Bash – Linux

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

درج یک خط در یک فایل

دو راه برای درج یک خط پس از یافتن یک تطابق در فایلی که در زیر ذکر شده است وجود دارد. هنگامی که دستور “sed” بدون گزینه “-i” استفاده می شود، محتوای فایل بدون تغییر باقی می ماند و خروجی محتوای فایل را با خط جدید درج شده نشان می دهد. اگر الگوی منطبق در فایل وجود داشته باشد، باید از گزینه “-i” با دستور “sed” برای درج دائمی خط جدید در فایل استفاده کنید.

الف. استفاده از “a” در دستور “sed”.

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

ب- استفاده از “i” در دستور “sed”.

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

درج خط(ها) در یک فایل بر اساس روی الگو:

یک فایل متنی جدا شده با برگه به ​​نام ایجاد کنید products.txt با محتوای زیر برای نمایش موارد استفاده از پرچم بالا در دستور sed.

products.txt

نام شناسنامه

01 خامه فرم گرفته

02 پودر کاکائو

03 شکر

04 تخم مرغ

05 آرد

مثال-2: درج یک خط بعد از یک شماره خط خاص با استفاده از “a”

دستورات زیر نشان می دهد که چگونه می توان یک خط جدید، پس از یک شماره خط خاص از فایل products.txt، بر اساس اضافه کرد. روی الگوی مورد استفاده در دستور “sed”.

در اینجا دستور اول محتوای موجود فایل را نشان می دهد. دستور “sed” متن “b01 Baking powder” را بعد از دو خط اول فایل اضافه می کند. آخرین دستور برای بررسی اینکه آیا محتوای فایل تغییر کرده است یا خیر استفاده می شود.

$ گربه products.txt

$ sed ‘2 a b01\tبیکینگ پودر’ products.txt

$ گربه products.txt

پس از اجرای دستور بالا خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

مثال-3: با استفاده از “a” یک خط بعد از آخرین خط وارد کنید

دستور زیر راه الحاق یک خط جدید بعد از آخرین خط فایل را نشان می دهد. دستور اول و آخر محتوای موجود فایل را قبل و بعد از اجرای دستور sed نشان می دهد. نماد “$” در الگوی دستور “sed” برای ذکر آخرین خط فایل استفاده می شود.

$ گربه products.txt

پیشنهاد می‌کنیم بخوانید:  در Bash، اگر دستوری با شکست مواجه شد، دستورات دیگری را اجرا کنید

$ sed ‘$ a b01\tبیکینگ پودر’ products.txt

$ گربه products.txt

پس از اجرای دستور بالا خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

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

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

$ گربه products.txt

$ sed ‘/^s01.*/a b01\tبکینگ پودر’ products.txt

$ گربه products.txt

پس از اجرای دستور خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

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

$ گربه products.txt

$ sed ‘/پودر$/a b01\tبکینگ پودر’ products.txt

$ گربه products.txt

پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

مثال-5: چندین خط را بعد از الگوی منطبق با استفاده از “a” وارد کنید

دستور sed زیر راه اضافه کردن چندین خط را در محتوای یک فایل نشان می دهد روی الگوی تطبیق

در اینجا طبق الگو دو خط بعد از خط سوم اضافه می شود.

$ گربه products.txt

$ sed ‘/^[a-c]/a b01\tبکینگ پودر\nb02\tجوش شیرین products.txt

$ گربه products.txt

پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

مثال-6: یک خط را پس از مطابقت با یک الگو با استفاده از “I” وارد کنید

$ گربه products.txt

$ sed ‘/cream/i b01\tبکینگ پودر’ products.txt

$ گربه products.txt

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

مثال-7: با استفاده از گزینه “-i” یک خط را به طور دائم پس از الگوی منطبق وارد کنید

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

$ گربه products.txt

$ sed -من ‘/e$/a g01\tGhee’ products.txt

$ گربه products.txt

پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.

چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

نتیجه:

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

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

زمان انتشار: 1402-12-31 07:49:03

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

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

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