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

سرور مجازی NVMe

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایل

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


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

نحو:

دستور دستور “sed” برای جستجو و جایگزینی رشته از یک فایل به شرح زیر است:

sed -من “s/search/replace” نام فایل

در اینجا، در صورت یافتن کلمه جستجو شده، از گزینه “i” برای جایگزینی محتوای فایل اصلی استفاده می شود. “سدستور ” جایگزینی را نشان می‌دهد که رشته خاصی را جستجو می‌کند و اگر کلمه جستجو در فایل وجود داشته باشد، رشته را با رشته دیگری جایگزین می‌کند. نام فایل حاوی نام هر نام فایل موجود است که در آن جستجو و جایگزینی انجام می شود.

نمونه های مختلف از دستورات “Sed”.

روش های مختلف جستجو و جایگزینی رشته ها در یک فایل در این قسمت از آموزش نشان داده شده است. یک فایل متنی به نام Students.txt با محتوای زیر ایجاد کنید که در آن کار جستجو و جایگزینی با استفاده از دستور “sed” انجام می شود:

student.txt

دکتر حسین:CSE:Batch-50:Semester-10

نبیر رحمان:CSE:Batch-51:Temester-9

مهناز کازی:CSE:Batch-52:Temester-8

مثال 1: جایگزینی همه رخدادهای رشته بدون تغییر فایل

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

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “CSE” در فایل student.txt اجرا کنید و با استفاده از “BBA” همه موارد این رشته را جایگزین کنید:

$ sed ‘s/CSE/BBA/’ student.txt

خروجی:

پیشنهاد می‌کنیم بخوانید:  روش صادرات یک مسیر در .Bashrc

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
مثال 2: جایگزین دائمی همه رخدادهای رشته در فایل

روش جایگزینی دائمی یک رشته خاص در یک فایل مبتنی بر روی رشته جستجو در این مثال نشان داده شده است.

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “batch” در فایل student.txt اجرا کنید و با استفاده از “BATCH” همه موارد این رشته را در فایل به طور دائم جایگزین کنید:

$ sed -من ‘s/batch/BATCH/i’ student.txt

برای بررسی محتوای به روز شده فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

خروجی:

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایلروش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
مثال 3: به جای وقوع خاص رشته در فایل

روش جایگزینی یک رشته خاص از یک اتفاق خاص در یک فایل مبتنی بر روی مطابقت دقیق رشته جستجو در این مثال نشان داده شده است:

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “0” در فایل student.txt اجرا کنید و با استفاده از “1” همه موارد این رشته را در فایل جایگزین کنید:

$ sed ‘s/0/1/’ student.txt

دستور زیر را برای جستجوی کلمه “0” در فایل student.txt اجرا کنید و با استفاده از “1” دومین تکرار این رشته را در فایل جایگزین کنید:

$ sed ‘s/0/1/2’ student.txt

خروجی:

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایلروش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
مثال 4: خطوط جایگزین شده فایل را دو بار چاپ کنید

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

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch” تمام رخدادهای این رشته را در فایل جایگزین کنید و خطوط جایگزین شده را دو بار چاپ کنید:

$ sed ‘s/BATCH/Batch/p’ student.txt

خروجی:

پیشنهاد می‌کنیم بخوانید:  روش استفاده از دستور Bash Source

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایلروش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
مثال 5: رشته خط خاص فایل را جایگزین کنید

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

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch” به جای وقوع این رشته در خط دوم فایل، اقدام کنید:

$ sed ‘2 s/BATCH/Batch/i’ student.txt

خروجی:

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایلروش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
مثال 6: رشته محدوده مشخصی از خطوط فایل را جایگزین کنید

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

برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:

$ گربه student.txt

دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch”، وقوع این رشته را از خط اول تا دوم فایل جایگزین کنید:

$ sed ‘1,2 s/BATCH/Batch/’ student.txt

خروجی:

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

روش استفاده از دستور Sed برای جایگزینی رشته در یک فایلروش استفاده از دستور Sed برای جایگزینی رشته در یک فایل

نتیجه

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

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

زمان انتشار: 1402-12-29 09:46:03

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

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

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