از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش جایگزینی چندین خط با استفاده از دستور “sed”.
سرفصلهای مطلب
گاهی اوقات لازم است چندین خط از یک فایل را با هر کاراکتر یا متن خاصی جایگزین کنید. دستورات مختلفی در لینوکس برای جایگزینی چندین خط از یک فایل وجود دارد. دستور `sed` یکی از آنها برای انجام این نوع کارها است. شکل کامل «sed» ویرایشگر Steam است و عمدتاً برای خواندن و تبدیل متن به روشهای مختلف با استفاده از یک عبارت منظم استفاده میشود. روش استفاده از این دستور برای جایگزینی چندین خط یک فایل به روش های مختلف در این آموزش توضیح داده شده است.
برگه تقلب «sed» که معمولاً استفاده می شود:
پرکاربردترین کاراکترهای استفاده شده در دستور sed در جدول زیر توضیح داده شده است.
شخصیت | هدف |
آ | برای افزودن محتوا استفاده می شود. |
ب | برای شاخهبندی محتوا استفاده میشود. |
ج | برای تغییر محتوا استفاده می شود. |
د | برای حذف یک خط از یک فایل استفاده می شود. |
D | برای حذف خط اول یک فایل استفاده می شود. |
g | قبلاً از متن نگهدارنده کپی می شد. |
جی | برای اضافه کردن از متن نگهدارنده استفاده می شود. |
ساعت | برای کپی کردن در متن نگهدارنده استفاده می شود. |
اچ | برای الحاق به متن نگهدارنده استفاده می شود. |
من | برای درج استفاده می شود. |
من | عادت دارد print خط جایگزین |
n | برای رفتن به خط بعدی استفاده می شود. |
ن | برای الحاق خط ورودی بعدی استفاده می شود. |
پ | عادت دارد print. |
پ | عادت دارد print خط اول |
q | برای ترک استفاده می شود. |
س | برای ترک فوری استفاده می شود. |
r | برای خواندن فایل استفاده می شود. |
آر | برای خواندن خط از فایل استفاده می شود. |
س | برای جایگزینی استفاده می شود. |
تی | برای تست جایگزینی استفاده می شود. |
تی | برای تست عدم جایگزینی استفاده می شود. |
w | برای نوشتن روی فایل استفاده می شود. |
دبلیو | برای نوشتن یک خط در فایل استفاده می شود. |
ایکس | عادت دارد swap الگوها و نگه داشتن |
y | برای ترجمه استفاده می شود. |
z | برای پاک کردن خط استفاده می شود. |
‘=’ | عادت دارد print شماره خط |
با استفاده از دستور «sed» از چند خط جایگزین کنید terminal:
چگونه میتوان از دستور sed برای جایگزینی چندین خط از یک فایل استفاده کرد terminal در این قسمت از این آموزش نشان داده شده است. یک فایل به نام ایجاد کنید sed.txt با مطالب زیر دستورات این قسمت را تست کنید.
sed.txt
فرم کامل sed “ویرایشگر جریان” است.
این یک ابزار یونیکس است که برای خواندن و تبدیل متن در فرمت های مختلف استفاده می شود.
توسط Lee E. McMahon توسعه داده شد.
برای پردازش متن استفاده می شود.
از عبارات منظم پشتیبانی می کند.
مثال-1: دو خط متوالی را جایگزین کنید
دستور sed زیر دو خط متوالی را با یک خط دیگر جایگزین می کند. در اینجا، گزینه -z برای جایگزینی خطوط متوالی با داده های پوچ قبل از افزودن متن جایگزین استفاده می شود. طبق دستور، 3rd و 4هفتم خطوط فایل با متن جایگزین می شود، “این یک ابزار بسیار مفید است”.
$ sed -z ‘s/این توسط Lee E. McMahon توسعه داده شده است.\nبرای متن استفاده می شود
پردازش./این یک ابزار بسیار مفید است./’ sed.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود.
مثال-2: چندین خط را جایگزین کنید روی مسابقه و پرچم جهانی
دستور sed زیر جایگزین تمام خطوطی می شود که با کلمه شروع می شوند. ‘آی تی’ با کلمه “این خط جایگزین شده است ‘.
$ sed ‘s/^It.*/این خط جایگزین شد/g’ sed.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود. سه خط حاوی کلمه “آی تی‘ در فایل بنابراین، این خطوط با متن جایگزین جایگزین شده است.
مثال-3: چندین خط را جایگزین کنید روی دستور match و next line
دستور “sed” زیر جایگزین کلمه می شود.است“با کلمه”بودبا دستور خط بعدی، ‘n’.
$ sed ” {n;/is/ {s/is/was/}}” sed.txt
پس از اجرای دستورات خروجی زیر ظاهر می شود. اینجا، ‘است’ در 2 وجود داردnd و 4هفتم خطوط فایل، و این خطوط با کلمه اصلاح می شوند ‘بود’.
با ایجاد فایل اسکریپت «sed» چندین خط را جایگزین کنید:
در مثال های قبلی، دستورات `sed` از روی اجرا شده است terminal. اما این یک زبان اسکریپت است و اگر اسکریپت حاوی چندین دستور است، بهتر است یک فایل sed با اسکریپت ایجاد کنید. یک فایل متنی با نام ایجاد کنید student.txt با محتوای زیر که اسکریپت «sed» در آن اعمال خواهد شد.
student.txt
نام: رابرت
بخش: CSE
دسته: 35
شناسه: 111876
نام: یوسف
بخش: BBA
دسته: 27
شناسه: 111346
نام: ویلیام
بخش: CSE
دسته: 45
شناسه: 111654
نام: چارلز
بخش: EEE
دسته: 41
شناسه: 111346
نام: جان
بخش: CSE
دسته: 25
شناسه: 111746
نام: توماس
بخش: CSE
دسته: 15
مثال-4: چندین خط یک فایل را با استفاده از فایل اسکریپت sed جایگزین کنید
یک فایل sed با نام to ایجاد کنید جایگزین.sed با محتوای زیر برای جایگزینی خطوط متعدد بر اساس روی الگوی جستجو اینجا کلمه “CSE‘ در فایل متنی جستجو می شود و در صورت وجود مطابقت، مجدداً عدد 35 و 15 را جستجو می کند. اگر مطابقت دوم در فایل وجود داشته باشد، عدد 45 جایگزین آن می شود.
جایگزین.sed
p;n;
/35/ {
س/35/45/;
p;d;
}
/15/ {
س/15/55/;
p;d;
}
}
پ؛
دستور زیر را برای بررسی محتوای موجود فایل اجرا کنید. ‘CSE’ چهار بار در فایل متنی ظاهر شد. 35 و 15 در دو مکان وجود دارد.
دستور زیر جایگزین محتوای چند خط مبتنی بر خواهد شد روی فیلمنامه sed
پس از اجرای دستور خروجی زیر ظاهر می شود.
نتیجه
روش های مختلفی برای جایگزینی چند خط یا محتوای چندین خط با استفاده از دستور sed در این آموزش نشان داده شده است. روش اجرای اسکریپت `sed` از یک فایل sed نیز در این آموزش نشان داده شده است. امیدوارم این آموزش به خواننده کمک کند تا با استفاده از دستور «sed» چندین خط از هر فایلی را جایگزین کند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 07:25:03