از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از Sed برای ویرایش فایل در محل
سرفصلهای مطلب
لینوکس از انواع مختلفی از ابزارهای خط فرمان برای خودکارسازی وظایف پشتیبانی می کند که لینوکس را در خط مقدم سیستم عامل قرار می دهد. به دلیل اهمیت و کاربرد آن، صدها توزیع مبتنی بر آن دارد روی لینوکس و آنها از دستورات متعددی برای انجام خودکار اقدامات پشتیبانی می کنند.
مجموعه عظیمی از دستورات برای اوبونتو موجود است و ابزار دستوری sed یکی از آنهاست. از دستور sed می توان برای انجام عملیات اساسی استفاده کرد روی فایل های متنی مانند ویرایش، حذف متن داخل یک فایل.
در کنار این اقدامات اولیه، sed فهرست طولانی از گزینههای پشتیبانی شده را ارائه میکند که میتوان از آنها برای دستکاری خروجی بر اساس نیازهای کاربر استفاده کرد. ما یک راهنمای گردآوری کردهایم که نشان میدهد تغییرات در فایل اصلی با استفاده از دستور sed حفظ میشود:
روش ویرایش فایل در محل با استفاده از دستور sed
این گزینه از دستور sed برای ویرایش فایل و ذخیره تغییرات در نسخه اصلی استفاده می شود و می تواند با تمام عملیات دستور sed استفاده شود:
نحو این گزینه در زیر توضیح داده شده است:
نحو
یا
در نحو ارائه شده در بالا، گزینه “-i” ثابت است (زمانی که در حال تغییر در فایل هستید) و کلمه کلیدی “command” شامل عملیات (جایگزینی، حذف، الحاق) است که با استفاده از دستور sed انجام می شود. و در آخر، “نام فایل” به نام فایل هدایت می شود که در آن تمام اقدامات مرتبط با دستور sed انجام می شود.
ما یک فایل متنی گرفته ایم که حاوی چند خط متن در آن است:
بیایید محتوای ” را استخراج کنیمexamp.txt” فایل با استفاده از دستور ذکر شده در زیر:
بیایید با استفاده اولیه شروع کنیم که اگر از sed بدون استفاده کنیم-منگزینه ” سپس نتیجه را چاپ می کند روی را terminal و فایل اصلی بدون تغییر خواهد بود (همانطور که با استفاده از دستور “cat” بررسی شده است) همانطور که در زیر نشان داده شده است:
تفاوت بین ویرایش فایل در محل و ویرایش فایل دستور sed
در دستور زیر؛ “س” برای جایگزینی استفاده می شود و جایگزین کلمه ” می شوددبیان” با “اوبونتو“. علاوه بر این، نامه “g” در انتهای این دستور برای اقدام جهانی است، یعنی جایگزینی در کل فایل انجام می شود:
و اکنون از همان دستور با ” استفاده کنید-من” گزینه مطابق زیر ملاحظه می شود که با کمک «-من” محتوای داخل فایل اصلی (“examp.txt”) نیز اکنون تغییر کرده است، همانطور که در زیر نشان داده شده است:
توجه داشته باشید: شما می توانید استفاده کنید “-درجا” بجای “-من”؛ هر دو گزینه عملکرد یکسانی دارند:
روش ویرایش یک خط خاص از فایل در محل با استفاده از دستور sed
و اگر می خواهید محتوای هر خط خاصی را تغییر دهید، می توانید مقدار عددی را با حرف “s” اضافه کنید. به عنوان مثال، دستور داده شده در زیر تنها “Ubuntu” را با “Debian” جایگزین می کند روی خط شماره “2” و هنگامی که شماره خط را مشخص کردید، هدف حرف “g” باطل می شود، بنابراین می توانید آن را نیز حذف کنید:
علاوه بر این، می توانید قرار دهید$“با علامت”سکلمه کلیدی فقط برای انجام تغییرات روی خط آخر فایل؛ مانند دستور نوشته شده در زیر کلمه “اوبونتو” در محل “Linux-Mint” روی آخرین خط از “examp.txt”:
روش حذف یک خط در یک فایل با استفاده از دستور sed
همانطور که در بالا توضیح داده شد، گزینه in-place در دستور sed کاربرد گسترده ای دارد. به غیر از جایگزینی کلمات در یک خط، می توان کل خط را حذف کرد و خروجی را در فایل والد با استفاده از ” ذخیره کرد.-منگزینه ”: دستور ذکر شده در زیر شماره خط را حذف می کند2” از فایل “examp.txt”:
و اگر می خواهید خطوط به جز شماره خط را حذف کنید2سپس باید دستوری را که در زیر ذکر شده است بنویسید:
نتیجه
اوبونتو از دستورات مختلفی پشتیبانی می کند که می توان از آنها برای انجام عملیات اولیه استفاده کرد روی از فایل های متنی مانند دستورات head یا tail می توان برای چاپ خطوط موجود در ابتدا یا انتهای یک فایل متنی استفاده کرد. با این حال، برخی محدودیتها وجود دارد، فرض کنید نمیتوانید تنها خط شماره 2 یک فایل متنی را با استفاده از دستور head چاپ کنید (اگرچه خط شماره 2 در قسمت head فایل آمده است). دستور sed دستورات دیگری را در این زمینه هدایت می کند; این دستور در اوبونتو به انجام عملیات اساسی کمک می کند روی فایل های متنی مانند جایگزینی، افزودن، حذف و غیره. مشاهده می شود که اگر از دستور sed به جز گزینه “-i” استفاده شود، نتیجه چاپ خواهد شد. روی terminal فقط. در این مقاله، گزینه in-place command دستور sed به تفصیل توضیح داده شده است و می توان با تمام عملیات sed از آن استفاده کرد. برای به دست آوردن بینشی عمیق از این گزینه، سعی کردهایم از آن با دستورات زیادی برای ایجاد اصول اولیه برای کاربران تازه کار استفاده کنیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 12:17:04