۱۰بهمن
در این بخش ۱۰ مثال دیگر sed را مطرح و اجرا می کنیم . از مثال ۱ تا مثال ۵ محتوای فایل data.txt به شرح زیر است:
# cat data.txt
salam salam salam salam salam man mohsen hastam
مثال ۱) اولین salam را با KHODAHAFEZ جایگزین کنید.
# sed 's/salam/KHODAHAFEZ/' data.txt
KHODAHAFEZ salam salam salam salam man mohsen hastam
مثال ۲) چهارمین salam را با KHODAHAFEZ جایگزین کنید.
# sed 's/salam/KHODAHAFEZ/4' data.txt
salam salam salam KHODAHAFEZ salam man mohsen hastam
مثال 3) آخرین salam را با KHODAHAFEZ جایگزین کنید.
# sed 's/\(.*\)salam/\1KHODAHAFEZ/' data.txt
salam salam salam salam KHODAHAFEZ man mohsen hastam
مثال ۴) salam یکی مانده به آخرین salam را با KHODAHAFEZ جایگزین کنید.
# sed 's/\(.*\)salam\(.*salam.*\)/\1KHODAHAFEZ\2/' data.txt
salam salam salam KHODAHAFEZ salam man mohsen hastam
مثال ۵) کلیه salam ها را با KHODAHAFEZ جایگزین کنید.
# sed 's/salam/KHODAHAFEZ/g' data.txt
KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ man mohsen hastam
از مثال ۶ تا ۱۰ محتوای فایل data.txt به شرح زیر است :
# cat data.txt
This is line number: #1
This is line number: #2 \
=This is line number: #3 \
=This is line number: #4
=This is line number: #5
This is line number: #6 \
This is line number: #7 \
This is line number: #8 \
This is line number: #9
=This is line number: #10
=This is line number: #11
This is line number: #12
This is line number: #13
مثال ۶) خط هایی که با \ تمام شده اند را با خط بعدیشان ترکیب کنید و با یک کاراکتر فاصله در یک خط نمایش دهید.
# sed ':a /\\$/ {N;s/\\\n/ /; ta;}' data.txt
This is line number: #1
This is line number: #2 =This is line number: #3 =This is line number: #4
=This is line number: #5
This is line number: #6 This is line number: #7 This is line number: #8 This is line number: #9
=This is line number: #10
=This is line number: #11
This is line number: #12
This is line number: #13
مثال ۷) خط هایی که با = شروع شده اند را با خط قبلی ترکیب کرده و با یک کاراکتر فاصله در یک خط نمایش دهید.
# sed ':a N; /\n=/ { s/\n=/ /;ta; }; P;D;' data.txt
This is line number: #1
This is line number: #2 \ This is line number: #3 \ This is line number: #4 This is line number: #5
This is line number: #6 \
This is line number: #7 \
This is line number: #8 \
This is line number: #9 This is line number: #10 This is line number: #11
This is line number: #12
This is line number: #13
مثال ۸) بعد از هر ۵ خط یک خط خالی قرار دهید.
# sed 'n;n;n;n;G' data.txt
This is line number: #1
This is line number: #2 \
=This is line number: #3 \
=This is line number: #4
=This is line number: #5
This is line number: #6 \
This is line number: #7 \
This is line number: #8 \
This is line number: #9
=This is line number: #10
=This is line number: #11
This is line number: #12
This is line number: #13
دستور n محتوای فعلی pattern space را در خروجی استاندارد می نویسد و سپس خط بعدی را می خواند و داخل pattern space قرار می دهد. این دستور در GNU sed می تواند به صورت زیر نوشته شود:
# sed '0~5 G' data.txt
This is line number: #1
This is line number: #2 \
=This is line number: #3 \
=This is line number: #4
=This is line number: #5
This is line number: #6 \
This is line number: #7 \
This is line number: #8 \
This is line number: #9
=This is line number: #10
=This is line number: #11
This is line number: #12
This is line number: #13
مثال ۹) خط هایی که با = شروع می شوند را نمایش دهید . (دستور grep)
# sed -n '/^=/ p' data.txt
=This is line number: #3 \
=This is line number: #4
=This is line number: #5
=This is line number: #10
=This is line number: #11
مثال ۱۰) خط هایی که با = شروع نمی شوند را نمایش دهید. (دستور grep -v)
# sed '/^=/ d' data.txt
This is line number: #1
This is line number: #2 \
This is line number: #6 \
This is line number: #7 \
This is line number: #8 \
This is line number: #9
This is line number: #12
This is line number: #13
۹۳/۱۱/۱۰