ویرایشگر جریان (Stream Editor (sed))
می خواهی سریع متن ها را ویرایش کنی؟ «sed» یک ویرایشگر جریان است. «جریان (Stream)» یعنی ورودی پیوسته مثل فایل یا خروجی یک دستور. با sed می توانی جایگزینی و قالب بندی را خیلی سریع انجام دهی.
شروع کار با sed
sed تغییرات متنی را روی ورودی انجام می دهد. مثال ها از فایل example_text.txt استفاده می کنند.
Hello World
Line 1
Line 2
جایگزینی ساده متن
برای جایگزینی اولین وقوع، از الگوی s/قدیم/جدید/ استفاده کن.
sed 's/World/Bash/' example_text.txt
Hello Bash
Line 1
Line 2
گزینه های مهم sed
-i: ویرایش مستقیم فایل درجا.-e: افزودن اسکریپت به دستورات اجرایی.-n: عدم چاپ خودکار خطوط.-r: استفاده از عبارات منظم پیشرفته.-f: خواندن اسکریپت از فایل.-l: تعیین طول خط برای دستورl.
ویرایش درجا با -i
با -i مستقیماً فایل را تغییر بده. بدون آن، خروجی روی ترمینال می آید.
sed -i 's/World/Bash/g' example_text.txt
cat example_text.txt
Hello Bash
Line 1
Line 2
کنترل چاپ با -n و p
با -n چاپ خودکار قطع می شود. سپس با p فقط خطوط دلخواه چاپ می شوند.
sed -n 's/World/Bash/p' example_text.txt
Hello Bash
عبارات منظم پیشرفته با -r
با -r الگوهای قوی تر داری. اینجا World یا Line با Hello جایگزین می شود.
sed -r 's/(World|Line)/Hello/g' example_text.txt
Hello Hello
Hello 1
Hello 2
اجرای اسکریپت از فایل با -f
می توانی دستورات را در فایل ذخیره کنی و اجرا کنی.
# محتویات script.sed
s/World/Bash/g
sed -f script.sed example_text.txt
Hello Bash
Line 1
Line 2
تنظیم طول خط با -l
با -l خروجی دستور l شکسته و علامت $ پایان خط نشان داده می شود.
sed -l 10 'l' example_text.txt
Hello Wor\
ld$
Hello World
Line 1$
Line 1
Line 2$
Line 2
ذخیره خروجی در فایل جدید
اگر نمی خواهی فایل اصلی را تغییر دهی، خروجی را ریدایرکت کن.
sed 's/World/Bash/' example_text.txt > new_example_text.txt
cat new_example_text.txt
Hello Bash
Line 1
Line 2
پردازش پیشرفته متن
می توانی پیشوند به هر خط اضافه کنی. این کار مرتب سازی گزارش را ساده می کند.
sed 's/^/Prefix: /' example_text.txt
Prefix: Hello World
Prefix: Line 1
Prefix: Line 2
نکته: اگر خطا دیدی، نگارش دستور را بررسی کن. مسیر فایل را هم چک کن.
تمرین گام به گام
- یک فایل متنی ساده آماده کن.
- با s/قدیم/جدید/ یک جایگزینی انجام بده.
- با
-iتغییر را درجا ذخیره کن. - با
-nوpچاپ را کنترل کن. - اسکریپت را در فایل بنویس و با
-fاجرا کن.
بعد از sed، سر بزن به اسکن الگو با awk. همچنین جستجوی متن با grep را ببین. این صفحه ویرایشگر جریان sed را ذخیره کن.
جمع بندی سریع
- sed ویرایش سریع متن روی جریان است.
- -i برای ویرایش درجا استفاده می شود.
- -n و p چاپ دلخواه را می دهند.
- -r الگوهای پیشرفته را فعال می کند.
- -f اسکریپت ها را از فایل اجرا می کند.