از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟
سرفصلهای مطلب
یکی از دستورات مفید و قدرتمند لینوکس دستور sed است. این دستور برای انجام انواع مختلف وظایف در لینوکس مانند درج، به روز رسانی و حذف یک متن یا خط خاص استفاده می شود. روی مسابقه. با استفاده از دستور “sed” می توانید یک متن را در یک رشته یا یک فایل به روش های مختلف وارد کنید.
روش درج یک خط پس از یافتن یک مطابقت در یک رشته یا یک خط در این آموزش نشان داده شده است.
یک خط در رشته وارد کنید
در صورتی که الگوی تعریف شده در دستور با هر بخشی از مقدار رشته مطابقت داشته باشد، می توان با استفاده از دستور “sed” بعد از هر مقدار رشته، یک خط جدید درج کرد.
مثال زیر نشان میدهد که اگر رشته خاصی در هر جایی از مقدار رشته وجود داشته باشد، چگونه میتوان یک خط جدید پس از یک مقدار رشته اضافه کرد.
مثال-1: پس از یافتن یک مطابقت، یک خط را در یک رشته وارد کنید
دستور زیر عبارت “inng” را در رشته “من برنامه نویسی را دوست دارم” و یک خط متن “آیا برنامه نویسی را دوست دارید؟” جستجو می کند. در صورت وجود رشته جستجو، بعد از رشته درج می شود.
در اینجا، کاراکتر “&” برای درج خط بعد از رشته استفاده می شود.
خروجی زیر نشان می دهد که “inng” در رشته وجود ندارد و هیچ خطی بعد از رشته درج نشده است.
دستور زیر “ing” را جستجو می کند. در رشته، “من برنامه نویسی را دوست دارم” و در رشته وجود دارد.
خروجی زیر نشان می دهد که خط جدید بعد از رشته اضافه شده است.
درج یک خط در یک فایل
دو راه برای درج یک خط پس از یافتن یک تطابق در فایلی که در زیر ذکر شده است وجود دارد. هنگامی که دستور “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” را بعد از دو خط اول فایل اضافه می کند. آخرین دستور برای بررسی اینکه آیا محتوای فایل تغییر کرده است یا خیر استفاده می شود.
$ sed ‘2 a b01\tبیکینگ پودر’ products.txt
$ گربه products.txt
پس از اجرای دستور بالا خروجی زیر ظاهر می شود.
مثال-3: با استفاده از “a” یک خط بعد از آخرین خط وارد کنید
دستور زیر راه الحاق یک خط جدید بعد از آخرین خط فایل را نشان می دهد. دستور اول و آخر محتوای موجود فایل را قبل و بعد از اجرای دستور sed نشان می دهد. نماد “$” در الگوی دستور “sed” برای ذکر آخرین خط فایل استفاده می شود.
$ sed ‘$ a b01\tبیکینگ پودر’ products.txt
$ گربه products.txt
پس از اجرای دستور بالا خروجی زیر ظاهر می شود.
مثال-4: پس از تطبیق یک الگو با استفاده از “a” یک خط در هر جایی از فایل وارد کنید
دستور “sed” زیر نشان می دهد که چگونه می توان یک خط جدید را در هر جایی از فایل بر اساس اضافه کرد روی الگوی تطبیق الگوی استفاده شده در دستور “sed” هر خطی که با “s01” شروع می شود را جستجو می کند و رشته جدید را بعد از آن اضافه می کند. خط چهارم فایل با “s01” شروع می شود و خط جدید بعد از آن خط درج می شود.
$ sed ‘/^s01.*/a b01\tبکینگ پودر’ products.txt
$ گربه products.txt
پس از اجرای دستور خروجی زیر ظاهر می شود.
دستور “sed” زیر هر خطی را که با “پودر” ختم می شود جستجو می کند و خط جدید را بعد از آن درج می کند. خط سوم فایل با “پودر” به پایان می رسد. بنابراین، خط جدید بعد از آن خط درج می شود.
$ sed ‘/پودر$/a b01\tبکینگ پودر’ products.txt
$ گربه products.txt
پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.
مثال-5: چندین خط را بعد از الگوی منطبق با استفاده از “a” وارد کنید
دستور sed زیر راه اضافه کردن چندین خط را در محتوای یک فایل نشان می دهد روی الگوی تطبیق
در اینجا طبق الگو دو خط بعد از خط سوم اضافه می شود.
$ sed ‘/^[a-c]/a b01\tبکینگ پودر\nb02\tجوش شیرین products.txt
$ گربه products.txt
پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.
مثال-6: یک خط را پس از مطابقت با یک الگو با استفاده از “I” وارد کنید
$ sed ‘/cream/i b01\tبکینگ پودر’ products.txt
$ گربه products.txt
پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.
مثال-7: با استفاده از گزینه “-i” یک خط را به طور دائم پس از الگوی منطبق وارد کنید
دستور sed زیر روش تغییر دائمی محتوای فایل را نشان می دهد. گزینه “i” با دستور “sed” برای درج یک خط جدید در فایل مبتنی بر استفاده می شود روی الگو.
$ sed -من ‘/e$/a g01\tGhee’ products.txt
$ گربه products.txt
پس از اجرای دستورات بالا خروجی زیر ظاهر می شود.
نتیجه:
روش های درج دو یا چند خط در یک فایل با استفاده از دستور “sed” با الگو در این آموزش نشان داده شده است تا به خواننده کمک کند تا این دستور را برای درج خطوط در پایگاه موقت یا دائمی اعمال کند. روی الگو.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 07:49:03