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

سرور مجازی NVMe

روش استفاده از Sed برای ویرایش فایل در محل

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


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

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

در کنار این اقدامات اولیه، sed فهرست طولانی از گزینه‌های پشتیبانی شده را ارائه می‌کند که می‌توان از آنها برای دستکاری خروجی بر اساس نیازهای کاربر استفاده کرد. ما یک راهنمای گردآوری کرده‌ایم که نشان می‌دهد تغییرات در فایل اصلی با استفاده از دستور sed حفظ می‌شود:

روش ویرایش فایل در محل با استفاده از دستور sed

این گزینه از دستور sed برای ویرایش فایل و ذخیره تغییرات در نسخه اصلی استفاده می شود و می تواند با تمام عملیات دستور sed استفاده شود:

نحو این گزینه در زیر توضیح داده شده است:

نحو

sed -من فرمان [file name]

یا

sed –درجا فرمان [file name]

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

ما یک فایل متنی گرفته ایم که حاوی چند خط متن در آن است:

پیشنهاد می‌کنیم بخوانید:  ایجاد یک عدد تصادفی در bash

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

$ گربه examp.txt

روش استفاده از Sed برای ویرایش فایل در محل

بیایید با استفاده اولیه شروع کنیم که اگر از sed بدون استفاده کنیم-منگزینه ” سپس نتیجه را چاپ می کند روی را terminal و فایل اصلی بدون تغییر خواهد بود (همانطور که با استفاده از دستور “cat” بررسی شده است) همانطور که در زیر نشان داده شده است:

تفاوت بین ویرایش فایل در محل و ویرایش فایل دستور sed

در دستور زیر؛ “س” برای جایگزینی استفاده می شود و جایگزین کلمه ” می شوددبیان” با “اوبونتو“. علاوه بر این، نامه “g” در انتهای این دستور برای اقدام جهانی است، یعنی جایگزینی در کل فایل انجام می شود:

$ sed ‘s/دبیان/اوبونتو/g’ examp.txt

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

و اکنون از همان دستور با ” استفاده کنید-من” گزینه مطابق زیر ملاحظه می شود که با کمک «-من” محتوای داخل فایل اصلی (“examp.txt”) نیز اکنون تغییر کرده است، همانطور که در زیر نشان داده شده است:

توجه داشته باشید: شما می توانید استفاده کنید “-درجا” بجای “-من”؛ هر دو گزینه عملکرد یکسانی دارند:

$ sed -من ‘s/دبیان/اوبونتو/g’ examp.txt

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

روش ویرایش یک خط خاص از فایل در محل با استفاده از دستور sed

و اگر می خواهید محتوای هر خط خاصی را تغییر دهید، می توانید مقدار عددی را با حرف “s” اضافه کنید. به عنوان مثال، دستور داده شده در زیر تنها “Ubuntu” را با “Debian” جایگزین می کند روی خط شماره “2” و هنگامی که شماره خط را مشخص کردید، هدف حرف “g” باطل می شود، بنابراین می توانید آن را نیز حذف کنید:

$ sed -من ‘2s/اوبونتو/دبیان/examp.txt

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

علاوه بر این، می توانید قرار دهید$“با علامت”سکلمه کلیدی فقط برای انجام تغییرات روی خط آخر فایل؛ مانند دستور نوشته شده در زیر کلمه “اوبونتو” در محل “Linux-Mint” روی آخرین خط از “examp.txt”:

$ sed -من$s/اوبونتو/Linux-Mint/examp.txt

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

روش حذف یک خط در یک فایل با استفاده از دستور sed

همانطور که در بالا توضیح داده شد، گزینه in-place در دستور sed کاربرد گسترده ای دارد. به غیر از جایگزینی کلمات در یک خط، می توان کل خط را حذف کرد و خروجی را در فایل والد با استفاده از ” ذخیره کرد.-منگزینه ”: دستور ذکر شده در زیر شماره خط را حذف می کند2” از فایل “examp.txt”:

$ sed -من examp.txt ‘2d’

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

و اگر می خواهید خطوط به جز شماره خط را حذف کنید2سپس باید دستوری را که در زیر ذکر شده است بنویسید:

$ sed -من2!d’ examp.txt

روش استفاده از Sed برای ویرایش فایل در محلروش استفاده از Sed برای ویرایش فایل در محل

نتیجه

اوبونتو از دستورات مختلفی پشتیبانی می کند که می توان از آنها برای انجام عملیات اولیه استفاده کرد روی از فایل های متنی مانند دستورات head یا tail می توان برای چاپ خطوط موجود در ابتدا یا انتهای یک فایل متنی استفاده کرد. با این حال، برخی محدودیت‌ها وجود دارد، فرض کنید نمی‌توانید تنها خط شماره 2 یک فایل متنی را با استفاده از دستور head چاپ کنید (اگرچه خط شماره 2 در قسمت head فایل آمده است). دستور sed دستورات دیگری را در این زمینه هدایت می کند; این دستور در اوبونتو به انجام عملیات اساسی کمک می کند روی فایل های متنی مانند جایگزینی، افزودن، حذف و غیره. مشاهده می شود که اگر از دستور sed به جز گزینه “-i” استفاده شود، نتیجه چاپ خواهد شد. روی terminal فقط. در این مقاله، گزینه in-place command دستور sed به تفصیل توضیح داده شده است و می توان با تمام عملیات sed از آن استفاده کرد. برای به دست آوردن بینشی عمیق از این گزینه، سعی کرده‌ایم از آن با دستورات زیادی برای ایجاد اصول اولیه برای کاربران تازه کار استفاده کنیم.

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

زمان انتشار: 1402-12-30 12:17:04

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

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

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