دستورات چندگاته sed میتوانند در یک فایل قرار داده شده و با استفاده از گزینه f-
اجرا شوند. موقع ایجاد چنین فایلی، مطمين شوید که:
هیچ فضای سفیدی در انتهای سطرهانباشد.
نقلقولها استفاده نشده باشند.
وقتی متنی را برای افزودن یا جایگزینی وارد میکنید، همگی غیر از سطر آخر به کاراکتر \ ختم شوند.
نوشتن خروجی با استفاده از عملگر تغییر مسیر خروجی> انجام میشود. این یک اسکریپت نمونه برای ایجاد فایلهای خیلی ساده HTML از فایلهای متنی است.
sandy ~>
catscript.sed
1i\ <html>\ <head><title>sed generated html</title></head>\ <body bgcolor="#ffffff">\ <pre> $a\ </pre>\ </body>\ </html>sandy ~>
cattxt2html.sh
#!/bin/bash # This is a simple script that you can use for converting text into HTML. # First we take out all newline characters, so that the appending only happens # once, then we replace the newlines. echo "converting $1..." SCRIPT="/home/sandy/scripts/script.sed" NAME="$1" TEMPFILE="/var/tmp/sed.$PID.tmp" sed "s/\n/^M/" $1 | sed -f $SCRIPT | sed "s/^M/\n/" > $TEMPFILE mv $TEMPFILE $NAME echo "done."sandy ~>
$1
اولین شناسه یک دستور وارد شده را نگاه میدارد، در این حالت نام فایلی که باید تبدیل شود:
sandy ~>
cattest
line1 line2 line3
مطالب بیشتر در مورد پارامترهای موضعی در فصل 7، دستورات شرطی.
sandy ~>
txt2html.shtest
converting test... done.sandy ~>
cattest
<html> <head><title>sed generated html</title></head> <body bgcolor="#ffffff"> <pre> line1 line2 line3 </pre> </body> </html>sandy ~>
در واقع این چگونگی انجام آن نیست، این مثال فقط تواناییهای sed نمایش میدهد. بخشی به نام «متغیرهایGawk» برای راه حلهای آراستهتر این مسئله ملاحظه کنید، کاربرد ساختار BEGIN و END برنامه awk.
سهولت sed | |
---|---|
ویرایشگرهای پیشرفته، پشتیبان نمایان سازی دستور زبان، میتوانند دستور زبان sed را تشخیص بدهند. اگر شما کاراکترهای \ و مشابه آن را فراموش میکنید، این میتواند کمک خوبی باشد. |