c option in SED

  • Replace the selected lines with text, which has each embedded newline preceded by a backslash.
  • فرمان c مخفف کلمه Change به معنی تغییر می‌باشد.
  • زمانی که از فرمان c در داخل قسمت دست نوشته استفاده می‌شود، تاکید می‌شود تا تغییراتی بر روی الگویی خاص یافت و اعمال شود.
  • شاید توضیحات کمی گیج کننده باشد. اجازه دهید فهم و تسلط به این بخش را در قالب مثال دنبال کنیم.

مثال اول

  • پرونده زیر را در نظر بگیرید :
line1
line2
line3
line4
  • پاک کردن خطی مشخص بر اساس شماره خط.
  • جایگزینی آن خط با عبارت یا جمله ای مشخص :
$ sed '2 c\This is LINE_2' input.txt 
line1
This is LINE_2
line3
line4

مثال دوم

  • پرونده مثال قبل را در نظر بگیرید.
  • پاک کردن خط یا خط هایی که حاوی عبارت line هستند.
  • جایگزینی آن خط با عبارت یا جمله ای مشخص :
$ sed '/line/c\This is a line' input.txt 
This is a line
This is a line
This is a line
This is a line
  • همان طور که ملاحظه می کنید، تمام خطوط دستخوش تغییرات شدند چرا که عبارت line در تمام خطوط وجود داشت.

مثال سوم

  • پرونده مثال قبل را در نظر بگیرید.
  • پاک کردن خط پایانی از فایل ورودی.
  • جایگزینی آن با عبارت یا جمله ای مشخص :
$ sed '$ c\Last Line' input.txt 
line1
line2
line3
Last Line
  • همان طور که مشاهده می کنید خط آخر یعنی خط چهارم پاک شد سپس با عبارت Last Line جایگزین شد.

مثال چهارم

  • پرونده مثال قبل را در نظر بگیرید.
  • پاک کردن از خط دوم تا آخرین خط.
  • جایگزینی آن خطوط با تنها عبارت یا جمله‌ای مشخص :
$ sed '2,$ c\$' input.txt 
line1
$
  • نکته: دستور بالا باعث شد تا خطوط دوم، سوم و چهارم پاک شوند و تنها خطی با مضمون $ جایگزین آنان شود.

مثال پنجم

  • پرونده مثال قبل را در نظر بگیرید.
  • پاک کردن تک تک خطوط فایل.
  • جایگزینی عبارت یا جمله‌ای مشخص با تک تک خطوط :
$ sed '/$/ c\linux' input.txt
linux
linux
linux
linux
  • همان طور که ملاحظه می‌کنید، تمام خطوط با عبارت linux جایگزین شدند.

  • بررسی شده توسط نسخه‌ی 4.7 ابزار SED

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *