ورود به سایت

لطفا با نام کاربری و کلمه عبور وارد سایت شوید.

ثبت نام ×

لطفا فرم را پر کرده و ثبت نام کنید!

پنجاه مثال تک خطی sed - بخش سوم

در این بخش ۱۰ مثال دیگر از دستور sed را مطرح و حل می‌کنیم. از مثال ۱ تا مثال ۵ محتوای فایل data.txt به شرح زیر است:

Bash
$ cat data.txt
salam salam salam salam salam man mohsen hastam

اگر توضیحی در مورد مثال مورد نیاز باشد در پایین مثال مربوطه بیان می‌کنیم.

مثال 1) اولین salam را با KHODAHAFEZ جایگزین کنید.

Bash
$ sed 's/salam/KHODAHAFEZ/' data.txt
KHODAHAFEZ salam salam salam salam man mohsen hastam

مثال 2) چهارمین salam را با KHODAHAFEZ جایگزین کنید

Bash
$ sed 's/salam/KHODAHAFEZ/4' data.txt
salam salam salam KHODAHAFEZ salam man mohsen hastam

مثال 3) آخرین salam را با KHODAHAFEZ جایگزین کنید.

Bash
$ sed 's/\(.*\)salam/KHODAHAFEZ/' data.txt
salam salam salam salam KHODAHAFEZ man mohsen hastam

مثال 4) salam یکی مانده به آخرین salam را با KHODAHAFEZ جایگزین کنید.

Bash
$ sed 's/\(.*\)salam\(.*salam.*\)/KHODAHAFEZ/' data.txt
salam salam salam KHODAHAFEZ salam man mohsen hastam

مثال 5) کلیه salam ها را با KHODAHAFEZ جایگزین کنید.

Bash
$ sed 's/salam/KHODAHAFEZ/g' data.txt
KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ KHODAHAFEZ man mohsen hastam

از مثال ۶ تا ۱۰ محتوای فایل data.txt به شرح زیر است:

Bash
$ 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

مثال 6) خط‌هایی که با \ تمام شده‌اند را با خط بعدیشان ترکیب کنید و با یک کاراکتر فاصله در یک خط نمایش دهید.

Bash
$ 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

مثال 7) خط‌هایی که با = شروع شده‌اند را با خط قبلی ترکیب کرده و با یک کاراکتر فاصله در یک خط نمایش دهید.

Bash
$ 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

مثال 8) بعد از هر ۵ خط یک خط خالی قرار دهید.

Bash
$ 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 می‌تواند به صورت زیر نوشته شود:

Bash
$ 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

مثال 9) خط‌هایی که با = شروع می‌شوند را نمایش دهید. (دستور grep)

Bash
$ 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

مثال 10) خط‌هایی که با = شروع نمی‌شوند را نمایش دهید. (دستور grep -v)

Bash
$ 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

مطالب مرتبط


نظر شما



 
 
 
لینک‌های مفید