جایی برای نوشتن

بایگانی
آخرین نظرات
۰۹بهمن

در تمام مثال های این بخش دستورات sed را بر روی محتوای این فایل اعمال می کنیم :


# 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 's/^/</;s/$/>/' 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>


همانطور که مشاهده می کنید در ابتدای خطوط ۱ و ۳ و ۴ و ۸ و ۱۲ و انتهای خطوط ۶ و ۸ و ۱۲ تعدای فضای خالی یا کاراکتر space قرار دارد.


مثال ۲)  یک خط خالی زیر هر خط اضاقه کنید :


# sed '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


دستور G که ابتدای کلمه Get می باشد یک n\ به pattern space اضافه می کند و سپس محتوای hold space را به انتهای pattern space اضافه می کند. در اینجا چون hold space خالی است بدین صورت زیر هر خط تنها یک خط خالی چاپ می شود.

مثال ۳)  یک خط خالی بالای هر خط اضافه کنید:

# sed 'x;p;x' 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

دستور x محتوای pattern space و hold space را با هم تعویض یا exchange می کند .

مثال ۴)  یک خط خالی زیر و یک خط خالی بالای هر خط اضافه کنید.

# sed 'x;p;x;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


مثال ۵)  فضاهای خالی ابتدای هر خط را حذف کنید.

# sed 's/^[ \t]*//' 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 's/[ \t]*$/>/' 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 's/^[ \t]*/</;s/[ \t]*$/>/' 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>

مثال ۸)  ۵ کاراکتر < را به ابتدای تمامی خطوطی که با space شروع نمی شوند اضافه کنید.

# sed '/^[ \t]/ !s/^/>>>>>/' 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 '5,8 p' data.txt
This is line number: #5
This is line number: #6
This is line number: #7
This is line number: #8

توجه داشته باشید sed به صورت طبیعی بعد از اتمام هر سیکل محتوای pattern space را بر روی خروجی استاندارد می نویسد لذا با استفاده از سوییچ n- این حالت را غیر فعال می کنیم و به جای آن در دستوری که به sed می دهیم می گوییم که فقط در خطوط 5 تا 8 با استفاده از دستور p محتوای pattern space را بر روی خروجی استاندارد چاپ کند.

مثال ۱۰)  خط شماره 4 را نمایش دهید.

# sed '4 !d' data.txt
This is line number: #4

دستور d که ابتدای کلمه delete می باشد محتوای pattern space را کاملا پاک می کند. هنگامی که  pattern space کاملا خالی شود سیکل فعلی متوقف می شود و چون pattern space خالیست هیچ چیزی بر روی خروجی استاندارد نوشته نمی شود و سیکل بعدی ( خواندن خط بعدی) و اجرای لیست دستورات از ابتدا برای خط جدید آغاز می شود.  در مثال بالا به sed می گوییم خط ۴ را delete نکن یعنی اینکه مابقی خطوط را delete کن ! و به این صورت تنها خط ۴ نمایش داده می شود.
۹۳/۱۱/۰۹ موافقین ۰ مخالفین ۰
...:::... محسن ...:::...

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی