از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستور Sed برای جایگزینی رشته در یک فایل
سرفصلهای مطلب
فرم کامل دستور “sed” یک ویرایشگر جریان است. این دستور یکی از دستورات بسیار قدرتمند سیستم عامل لینوکس است و برای مصارف مختلفی از آن استفاده می شود. یکی از کاربردهای رایج این دستور یافتن و جایگزینی یک یا چند مقدار رشته ای از یک فایل است. محتوای خاص یک فایل را می توان بدون باز کردن فایل با این دستور جایگزین کرد. دستور “sed” از عبارت منظم پشتیبانی می کند. مقدار رشته خاص را می توان در داخل یک فایل بر اساس جستجو کرد روی عبارت منظمی که با این دستور تعریف می شود. روش های مختلف جستجو و جایگزینی رشته خاص در یک فایل با استفاده از دستور “sed” در این آموزش نشان داده شده است.
نحو:
دستور دستور “sed” برای جستجو و جایگزینی رشته از یک فایل به شرح زیر است:
در اینجا، در صورت یافتن کلمه جستجو شده، از گزینه “i” برای جایگزینی محتوای فایل اصلی استفاده می شود. “سدستور ” جایگزینی را نشان میدهد که رشته خاصی را جستجو میکند و اگر کلمه جستجو در فایل وجود داشته باشد، رشته را با رشته دیگری جایگزین میکند. نام فایل حاوی نام هر نام فایل موجود است که در آن جستجو و جایگزینی انجام می شود.
نمونه های مختلف از دستورات “Sed”.
روش های مختلف جستجو و جایگزینی رشته ها در یک فایل در این قسمت از آموزش نشان داده شده است. یک فایل متنی به نام Students.txt با محتوای زیر ایجاد کنید که در آن کار جستجو و جایگزینی با استفاده از دستور “sed” انجام می شود:
دکتر حسین:CSE:Batch-50:Semester-10
نبیر رحمان:CSE:Batch-51:Temester-9
مهناز کازی:CSE:Batch-52:Temester-8
مثال 1: جایگزینی همه رخدادهای رشته بدون تغییر فایل
روش جایگزینی یک رشته خاص در یک فایل مبتنی بر روی مطابقت دقیق رشته جستجو در این مثال نشان داده شده است.
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “CSE” در فایل student.txt اجرا کنید و با استفاده از “BBA” همه موارد این رشته را جایگزین کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
مثال 2: جایگزین دائمی همه رخدادهای رشته در فایل
روش جایگزینی دائمی یک رشته خاص در یک فایل مبتنی بر روی رشته جستجو در این مثال نشان داده شده است.
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “batch” در فایل student.txt اجرا کنید و با استفاده از “BATCH” همه موارد این رشته را در فایل به طور دائم جایگزین کنید:
برای بررسی محتوای به روز شده فایل student.txt دستور زیر را اجرا کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
مثال 3: به جای وقوع خاص رشته در فایل
روش جایگزینی یک رشته خاص از یک اتفاق خاص در یک فایل مبتنی بر روی مطابقت دقیق رشته جستجو در این مثال نشان داده شده است:
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “0” در فایل student.txt اجرا کنید و با استفاده از “1” همه موارد این رشته را در فایل جایگزین کنید:
دستور زیر را برای جستجوی کلمه “0” در فایل student.txt اجرا کنید و با استفاده از “1” دومین تکرار این رشته را در فایل جایگزین کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
مثال 4: خطوط جایگزین شده فایل را دو بار چاپ کنید
روش جایگزینی یک رشته خاص در یک فایل مبتنی بر روی مطابقت دقیق رشته جستجو و چاپ هر خط جایگزین شده دو بار در این مثال نشان داده شده است.
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch” تمام رخدادهای این رشته را در فایل جایگزین کنید و خطوط جایگزین شده را دو بار چاپ کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
مثال 5: رشته خط خاص فایل را جایگزین کنید
روش جایگزینی یک رشته خاص از یک خط خاص در یک فایل مبتنی بر روی رشته جستجو در این مثال نشان داده شده است.
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch” به جای وقوع این رشته در خط دوم فایل، اقدام کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
مثال 6: رشته محدوده مشخصی از خطوط فایل را جایگزین کنید
روش جایگزینی یک رشته خاص در محدوده خاصی از خطوط یک فایل مبتنی بر روی رشته جستجو در این مثال نشان داده شده است.
برای بررسی محتوای فایل student.txt دستور زیر را اجرا کنید:
دستور زیر را برای جستجوی کلمه “BATCH” در فایل student.txt اجرا کنید و با استفاده از “Batch”، وقوع این رشته را از خط اول تا دوم فایل جایگزین کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
نتیجه
دستور “sed” یک دستور بسیار مفید لینوکس برای انجام کار جستجو و جایگزینی است. این کار جایگزینی محتوای یک فایل را با استفاده از الگوهای جستجوی مختلف آسانتر میکند. استفاده از دستور “sed” برای جایگزینی محتوای یک فایل مبتنی بر روی مطابقت دقیق، تعداد موارد جستجو، یا تعداد خط در اینجا با چندین مثال نشان داده شده است. امیدواریم کاربران لینوکس بتوانند پس از مطالعه صحیح این آموزش، از دستور sed برای جایگزینی محتوای فایل استفاده کنند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 09:46:03