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

سرور مجازی NVMe

چگونه یک رشته را در یک فایل در Bash جایگزین کنیم

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






به عنوان یک برنامه نویس، ممکن است لازم باشد با انواع مختلفی از فایل ها کار کنید تا داده ها را به طور موقت یا دائم ذخیره کنید. گاهی اوقات، ممکن است لازم باشد بخشی از فایل را جایگزین کنید یا محتوای خاص فایل را تغییر دهید. برای جایگزینی محتوا در یک فایل، باید رشته فایل خاص را جستجو کنید. این ‘sed’ دستور برای جایگزینی هر رشته در یک فایل با استفاده از a استفاده می شود bash اسکریپت از این دستور می توان به روش های مختلفی برای جایگزینی محتوای یک فایل در آن استفاده کرد bash. این ابکیدستور ‘ همچنین می تواند برای جایگزینی رشته در یک فایل استفاده شود. این آموزش به شما نشان می دهد که چگونه هر مقدار رشته را با استفاده از a جایگزین کنید bash اسکریپت

01. نحو عمومی برای Sed

02. رشته در فایل را با Bash Sed Script جایگزین کنید

03. دستورات sed g و i برای global و حروف غیر حساس

04. تطبیق رقم sed

05. نحو عمومی برای Awk

06. رشته در فایل را با Bash Awk Script جایگزین کنید

07. رشته در فایل را با Pure Bash Scripting جایگزین کنید

08. رشته در فایل را با پرل وان لاینر جایگزین کنید

نمونه داده برای جایگزینی رشته Bash

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

منطقه مقدار تاریخ

01/01/2020 60000 داکا
2020/10/02 76000 رجشاهی
2020/03/21 54000 خلنا
15/04/2020 78000 چاندپور
17/05/2020 45000 بوگرا
2020/02/06 67000 Comilla

نحو عمومی برای Sed: جایگزین رشته در یک فایل

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

نحو

sed -من ‘s/search_string/replace_string/’ نام فایل

هر قسمت از نحو فوق در زیر توضیح داده شده است.

‘-من’ اگر رشته جستجو در فایل وجود داشته باشد، از گزینه برای تغییر محتوای فایل اصلی با رشته جایگزین استفاده می شود.
‘s’ دستور جایگزین را نشان می دهد.
“رشته_جستجو” حاوی مقدار رشته ای است که برای جایگزینی در فایل جستجو می شود.
‘replace_string’ حاوی مقدار رشته ای است که برای جایگزینی محتوای فایلی که با آن مطابقت دارد استفاده می شود “رشته_جستجو” ارزش.
‘نام فایل’ حاوی نام فایلی است که جستجو و جایگزینی در آن اعمال خواهد شد.

پیشنهاد می‌کنیم بخوانید:  روش شمارش تعداد خطوط یک فایل در Bash

مثال 1: فایل را با دستور ‘sed’ جایگزین کنید

در اسکریپت زیر، متن جستجو و جایگزینی از کاربر گرفته می شود. اگر رشته جستجو در “Sales.txt” وجود داشته باشد، با رشته جایگزین جایگزین می شود. در اینجا، جستجوی حساس به حروف کوچک و بزرگ انجام خواهد شد.

#!/صندوقچه/bash

# نام فایل را اختصاص دهید
نام فایل=“Sales.txt”

# رشته جستجو را بگیرید
خواندن “رشته جستجو را وارد کنید:” جستجو کردن

# رشته جایگزین را بردارید
خواندن “رشته جایگزین را وارد کنید:” جایگزین کردن

اگر [[ $search != “” && $replace != “” ]]; سپس

sed -من “s/$جستجو/$ جایگزین کنید/” $filename
فی

خروجی:

چگونه یک رشته را در یک فایل در Bash جایگزین کنیم

مثال 2: فایل را با دستور ‘sed’ با پرچم ‘g’ و ‘i’ جایگزین کنید

اسکریپت زیر مانند مثال قبلی کار می کند، اما رشته جستجو به صورت سراسری برای پرچم ‘g’ جستجو می شود، و جستجوی بدون حساس به حروف بزرگ برای پرچم ‘i’ انجام می شود.

#!/صندوقچه/bash

# رشته جستجو را بگیرید
خواندن “رشته جستجو را وارد کنید:” جستجو کردن

# رشته جایگزین را بردارید
خواندن “رشته جایگزین را وارد کنید:” جایگزین کردن

اگر [[ $search != “” && $replace != “” ]]; سپس

sed -من “s/$جستجو/$ جایگزین کنید/gi” 1 دلار
فی

خروجی:

چگونه یک رشته را در یک فایل در Bash جایگزین کنیمچگونه یک رشته را در یک فایل در Bash جایگزین کنیم

مثال 3: فایل را با دستور “sed” و الگوی رقمی مطابق جایگزین کنید

اسکریپت زیر تمام محتویات عددی یک فایل را جستجو می کند و با افزودن عبارت جایگزین محتوا می شود ‘$’ نماد در ابتدای اعداد

#!/صندوقچه/bash

# بررسی کنید که مقدار آرگومان خط فرمان وجود دارد یا خیر
اگر [ $1 != “” ]; سپس

# تمام رشته های حاوی ارقام را جستجو کنید و $ را اضافه کنید

sed -من ‘s/\b[0-9]\{5\}\b/$&/g’ 1 دلار
فی

خروجی:

چگونه یک رشته را در یک فایل در Bash جایگزین کنیمچگونه یک رشته را در یک فایل در Bash جایگزین کنیم

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

بیخیال دستور روش دیگری برای جایگزینی رشته در یک فایل است، اما این دستور نمی تواند فایل اصلی را مستقیماً مانند ‘ به روز کند.sed’ فرمان

مثال 4: فایل را با دستور awk جایگزین کنید

اسکریپت زیر محتوای به روز شده را در قسمت ذخیره می کند temp.txt فایلی که با فایل اصلی تغییر نام خواهد داد.

#!/صندوقچه/bash

پیشنهاد می‌کنیم بخوانید:  Bash رشته را به آرایه تقسیم می کند

# بررسی کنید که مقدار آرگومان خط فرمان وجود دارد یا خیر
اگر [ $1 != “” ]; سپس

# جستجو در همه رشته ها روی تاریخ

بیخیال ‘{sub(“02/06/2020″، “12/06/2020”)} {print}’ 1 دلار > temp.txt && mv temp.txt 1 دلار
فی

خروجی:

چگونه یک رشته را در یک فایل در Bash جایگزین کنیمچگونه یک رشته را در یک فایل در Bash جایگزین کنیم

در مثال بالا دستور awk برای جستجوی رشته استفاده می شود “02/06/2020”، که آخرین تاریخ در فایل نمونه ما است. رشته منطبق با یک رشته جدید جایگزین می شود “12/06/2020”. رشته ای که به دست می آید چه جایگزین شود یا نه چاپ می شود روی هر خط.

مثال 5: رشته در فایل را با Pure Bash Scripting جایگزین کنید

در این مثال همین کار را با حلقه Bash while و a انجام خواهیم داد bash دستور تعویض رشته خروجی را به a می نویسیم tmp فایل اصلی را در انتهای اسکریپت جایگزین کنید. کد زیر را ببینید:

#!/صندوقچه/bash

در حالی که خواندن خط انجام دادن

# همه نمونه ها را جایگزین کنید روی خط خولنا با داکا

echo ${line//Khulna/Dhaka}

انجام شده < Sales.txt > /tmp/Sales.o.txt

mv /tmp/Sales.o.txt Sales.txt

می توانی ببینی echo دستور جایگزینی در متغیر خط انجام می دهد، زیرا اسکریپت هر خط را در فایل متنی می خواند و همه نمونه های آن را جایگزین می کند. خولنا با رشته جدید داکا. حلقه while از فایل ورودی خوانده می شود Sales.txt و در فایل خروجی می نویسد /tmp/Sales.o.txt. در نهایت فایل خروجی موقت جایگزین فایل اصلی می شود mv فرمان

خروجی:
چگونه یک رشته را در یک فایل در Bash جایگزین کنیمچگونه یک رشته را در یک فایل در Bash جایگزین کنیم

مثال 6: رشته در فایل را با پرل یک لاینر جایگزین کنید

این کار در واقع بسیار ساده است پرل. پرل یک زبان قدیمی و کمتر محبوب اما بسیار قدرتمند است. این را می توان با یک دستور خط در bash خط فرمان:

پرل پی.پختن ه ‘s/Dhaka/Bogra/g’ حراجی.txt

-pi.bak به پرل می گوید process فایل در جای خود و همچنین ایجاد یک backup فایل با پسوند bak. جایگزینی همه موارد خواهد بود داکا برای بوگرا به عنوان متن جدید در اینجا می توانید خروجی آسان این دستور را مشاهده کنید:

خروجی:
چگونه یک رشته را در یک فایل در Bash جایگزین کنیمچگونه یک رشته را در یک فایل در Bash جایگزین کنیم

نتیجه

این مقاله روش استفاده را به شما نشان داد bash اسکریپت هایی برای جایگزینی رشته ها در یک فایل با جستجو و جایگزینی روی خط فرمان در bash. راه های زیادی برای انجام این کار وجود دارد از جمله با دستورات sed، awk، perl. می توانید از بومی استفاده کنید bash اسکریپت نویسی با حلقه ها و regex و راه های بیشتری وجود دارد که حتی در اینجا بحث نشده است. Bash و linux راه های زیادی برای انجام یک کار دارند.

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

زمان انتشار: 1402-12-31 12:08:03

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

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

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