50 `แต่` ตัวอย่างคำสั่ง

50 Sed Command Examples



`sed' เป็นคุณลักษณะการประมวลผลข้อความที่มีประโยชน์ของ GNU/Linux รูปแบบเต็มของ `sed' คือ Stream Editor งานการประมวลผลข้อความที่ง่ายและซับซ้อนหลายประเภทสามารถทำได้ง่ายมากโดยใช้คำสั่ง `sed' สตริงใดๆ ในข้อความหรือไฟล์สามารถค้นหา แทนที่ และลบได้โดยใช้นิพจน์ทั่วไปด้วยคำสั่ง `sed แต่คำสั่งนี้ดำเนินการแก้ไขทุกประเภทชั่วคราว และเนื้อหาไฟล์ต้นฉบับจะไม่เปลี่ยนแปลงตามค่าเริ่มต้น ผู้ใช้สามารถจัดเก็บเนื้อหาที่แก้ไขลงในไฟล์อื่นได้หากต้องการ การใช้งานพื้นฐานของคำสั่ง `sed' มีการอธิบายในบทช่วยสอนนี้โดยใช้ตัวอย่างที่ไม่ซ้ำกัน 50 ตัวอย่าง ก่อนเริ่มบทช่วยสอนนี้ คุณต้องตรวจสอบเวอร์ชันที่ติดตั้งของ `sed' ในระบบปฏิบัติการของคุณโดยเรียกใช้คำสั่งต่อไปนี้ กวดวิชาได้รับการออกแบบตาม GNU sed ดังนั้น `sed' เวอร์ชันนี้จะต้องฝึกตัวอย่างที่แสดงในบทช่วยสอนนี้

$sed --รุ่น

ผลลัพธ์ต่อไปนี้แสดงว่า GNU Sed เวอร์ชัน 4.4 ได้รับการติดตั้งในระบบแล้ว









ไวยากรณ์:



sed [ตัวเลือก]...[สคริปต์] [ไฟล์]

หากไม่มีคำสั่ง `sed` ให้ชื่อไฟล์ สคริปต์จะทำงานบนข้อมูลอินพุตมาตรฐาน สคริปต์ `sed' สามารถดำเนินการได้โดยไม่มีตัวเลือกใดๆ





เนื้อหา :

  1. การแทนที่ข้อความพื้นฐานโดยใช้ 'sed'
  2. แทนที่ข้อความทั้งหมดในบรรทัดใดบรรทัดหนึ่งของไฟล์โดยใช้ตัวเลือก 'g'
  3. แทนที่การเกิดขึ้นครั้งที่สองของการแข่งขันในแต่ละบรรทัดเท่านั้น
  4. แทนที่การเกิดขึ้นล่าสุดของการแข่งขันในแต่ละบรรทัดเท่านั้น
  5. แทนที่การจับคู่แรกในไฟล์ด้วยข้อความใหม่
  6. แทนที่การจับคู่ล่าสุดในไฟล์ด้วยข้อความใหม่
  7. การหลีกเลี่ยงแบ็กสแลชในคำสั่งแทนที่เพื่อจัดการการค้นหาและแทนที่เส้นทางของไฟล์
  8. แทนที่ไฟล์ทั้งหมดพาธแบบเต็มด้วยชื่อไฟล์ no directory
  9. แทนที่ข้อความแต่ก็ต่อเมื่อพบข้อความอื่นในสตริง
  10. แทนที่ข้อความ แต่ถ้าไม่พบข้อความอื่นในสตริง
  11. เพิ่มสตริงก่อนหลังรูปแบบการจับคู่โดยใช้ ' 1 '
  12. ลบบรรทัดที่ตรงกัน
  13. ลบบรรทัดที่ตรงกันและ 2 บรรทัดหลังจากบรรทัดที่ตรงกัน
  14. ลบช่องว่างทั้งหมดที่ท้ายบรรทัดข้อความ
  15. ลบทุกบรรทัดที่ตรงกันสองครั้งในบรรทัด
  16. ลบทุกบรรทัดที่มีช่องว่างเดียว
  17. ลบอักขระที่ไม่สามารถพิมพ์ได้ทั้งหมด
  18. หากมีการจับคู่ในบรรทัดต่อท้ายบรรทัด
  19. หากมีการจับคู่ในบรรทัดให้แทรกบรรทัดก่อนการแข่งขัน
  20. หากมีการจับคู่ในบรรทัดแทรกบรรทัดหลังการแข่งขัน
  21. ถ้าไม่มีแมตช์ต่อท้ายบรรทัด
  22. หากไม่มีการแข่งขันให้ลบบรรทัด
  23. ทำซ้ำข้อความที่ตรงกันหลังจากเพิ่มช่องว่างหลังข้อความ
  24. แทนที่รายการสตริงด้วยสตริงใหม่
  25. แทนที่สตริงที่ตรงกันด้วยสตริงที่มีการขึ้นบรรทัดใหม่
  26. ลบบรรทัดใหม่ออกจากไฟล์และใส่เครื่องหมายจุลภาคที่ส่วนท้ายของแต่ละบรรทัด
  27. ลบเครื่องหมายจุลภาคและเพิ่มบรรทัดใหม่เพื่อแยกข้อความออกเป็นหลายบรรทัด
  28. ค้นหาการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และลบบรรทัด
  29. ค้นหาตัวพิมพ์เล็กและตัวพิมพ์ที่ตรงกันและแทนที่ด้วยข้อความใหม่
  30. ค้นหาตัวพิมพ์เล็กที่ตรงกันและแทนที่ด้วยตัวพิมพ์ใหญ่ทั้งหมดของข้อความเดียวกัน
  31. ค้นหาตัวพิมพ์เล็กที่ตรงกันและแทนที่ด้วยตัวพิมพ์เล็กทั้งหมดของข้อความเดียวกัน
  32. แทนที่อักขระตัวพิมพ์ใหญ่ทั้งหมดในข้อความด้วยอักขระตัวพิมพ์เล็ก
  33. ค้นหาตัวเลขในบรรทัดและต่อท้ายสัญลักษณ์สกุลเงินหลังตัวเลข
  34. ใส่เครื่องหมายจุลภาคให้กับตัวเลขที่มีมากกว่า 3 หลัก
  35. แทนที่อักขระแท็บด้วยอักขระช่องว่าง 4 ตัว
  36. แทนที่อักขระเว้นวรรค 4 ตัวติดกันด้วยอักขระแท็บ
  37. ตัดบรรทัดทั้งหมดเป็น 80 ตัวอักษรแรก
  38. ค้นหาสตริง regex และต่อท้ายข้อความมาตรฐานบางส่วนต่อท้าย
  39. ค้นหาสตริง regex และสำเนาที่สองของสตริงที่พบหลังจากนั้น
  40. เรียกใช้สคริปต์ `sed' แบบหลายบรรทัดจากไฟล์
  41. จับคู่รูปแบบหลายบรรทัดและแทนที่ด้วยข้อความหลายบรรทัดใหม่
  42. แทนที่ลำดับของคำสองคำที่ตรงกับรูปแบบ
  43. ใช้คำสั่ง sed หลายคำสั่งจาก command-line
  44. รวม sed กับคำสั่งอื่น ๆ
  45. แทรกบรรทัดว่างในไฟล์
  46. ลบอักขระที่เป็นตัวอักษรและตัวเลขทั้งหมดออกจากแต่ละบรรทัดของไฟล์
  47. ใช้ '&' เพื่อจับคู่สตริง
  48. สลับคู่ของคำ
  49. ใช้อักษรตัวพิมพ์ใหญ่ตัวแรกของแต่ละคำ
  50. พิมพ์หมายเลขบรรทัดของไฟล์

1. การแทนที่ข้อความพื้นฐานโดยใช้ 'sed'

สามารถค้นหาและแทนที่ส่วนใดส่วนหนึ่งของข้อความโดยใช้รูปแบบการค้นหาและแทนที่โดยใช้คำสั่ง `sed` ในตัวอย่างต่อไปนี้ 's' หมายถึงงานค้นหาและแทนที่ คำว่า 'Bash' จะถูกค้นหาในข้อความ ภาษาสคริปต์ของ Bash และหากมีคำนั้นอยู่ในข้อความ คำนั้นจะถูกแทนที่ด้วยคำว่า 'Perl'



$โยนออก 'ภาษาสคริปต์ทุบตี' | sed 's/ทุบตี/เพิร์ล/'

เอาท์พุท:

คำว่า 'ทุบตี' มีอยู่ในข้อความ ดังนั้นผลลัพธ์คือ 'ภาษาสคริปต์ Perl'

คำสั่ง `sed` สามารถใช้แทนส่วนใดส่วนหนึ่งของเนื้อหาไฟล์ได้เช่นกัน สร้างไฟล์ข้อความชื่อ วันธรรมดา.txt โดยมีเนื้อหาดังต่อไปนี้

วันธรรมดา.txt

วันจันทร์
วันอังคาร
วันพุธ
วันพฤหัสบดี
วันศุกร์
วันเสาร์
วันอาทิตย์

คำสั่งต่อไปนี้จะค้นหาและแทนที่ข้อความ 'วันอาทิตย์' ด้วยข้อความ 'วันอาทิตย์เป็นวันหยุด'

$แมววันธรรมดา.txt
$sed 's/วันอาทิตย์/วันอาทิตย์เป็นวันหยุด/'วันธรรมดา.txt

เอาท์พุท:

'วันอาทิตย์' มีอยู่ในไฟล์ weekday.txt และคำนี้จะถูกแทนที่ด้วยข้อความ 'วันอาทิตย์เป็นวันหยุด' หลังจากดำเนินการคำสั่ง 'sed' ข้างต้น

ไปที่ด้านบน

2. แทนที่ข้อความทั้งหมดในบรรทัดใดบรรทัดหนึ่งของไฟล์โดยใช้ตัวเลือก 'g'

ตัวเลือก 'g' ใช้ในคำสั่ง `sed' เพื่อแทนที่รูปแบบการจับคู่ที่เกิดขึ้นทั้งหมด สร้างไฟล์ข้อความชื่อ python.txt ด้วยเนื้อหาต่อไปนี้เพื่อทราบการใช้ตัวเลือก 'g' ไฟล์นี้มีคำว่า . 'หลาม' หลายครั้ง.

python.txt

Python เป็นภาษาที่ได้รับความนิยมอย่างมาก
Python ใช้งานง่าย Python นั้นง่ายต่อการเรียนรู้
Python เป็นภาษาข้ามแพลตฟอร์ม

คำสั่งต่อไปนี้จะแทนที่การเกิดขึ้นทั้งหมดของ ' Python ’ ในบรรทัดที่สองของไฟล์ python.txt . ที่นี่, 'หลาม' เกิดขึ้นสองครั้งในบรรทัดที่สอง

$ cat หลามtxt
$ sed'2 วินาที / Python / perl / g'หลามtxt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ ที่นี่ การเกิดขึ้นทั้งหมดของ 'Python' ในบรรทัดที่สองจะถูกแทนที่ด้วย 'Perl'

ไปที่ด้านบน

3. แทนที่การเกิดขึ้นครั้งที่สองของการแข่งขันในแต่ละบรรทัดเท่านั้น

หากคำใดปรากฏขึ้นหลายครั้งในไฟล์ แทนที่คำที่เกิดขึ้นในแต่ละบรรทัดโดยใช้คำสั่ง `sed` ที่มีหมายเลขเกิดขึ้น คำสั่ง `sed` ต่อไปนี้จะแทนที่การเกิดขึ้นครั้งที่สองของรูปแบบการค้นหาในแต่ละบรรทัดของไฟล์ python.txt .

$ sed's/Python/perl/g2'หลามtxt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ที่นี่ข้อความค้นหา ' หลาม' ปรากฏสองครั้งในบรรทัดที่สองเท่านั้นและแทนที่ด้วยข้อความ ' Perl '.

ไปที่ด้านบน

4. แทนที่การเกิดขึ้นครั้งสุดท้ายของการแข่งขันในแต่ละบรรทัดเท่านั้น

สร้างไฟล์ข้อความชื่อ lang.txt โดยมีเนื้อหาดังต่อไปนี้

lang.txt

ภาษาการเขียนโปรแกรมทุบตี ภาษาการเขียนโปรแกรมไพทอน ภาษาโปรแกรม Perl
ภาษามาร์กอัปไฮเปอร์เท็กซ์
ภาษามาร์กอัปที่ขยายได้

$sed 's/(.*)การเขียนโปรแกรม/1Scripting/'lang.txt

ไปที่ด้านบน

5. แทนที่การจับคู่ครั้งแรกในไฟล์ด้วยข้อความใหม่

คำสั่งต่อไปนี้จะแทนที่เฉพาะการจับคู่แรกของรูปแบบการค้นหา ' Python 'โดยข้อความ 'เพิร์ล '. ที่นี่, '1' ใช้เพื่อจับคู่การเกิดขึ้นครั้งแรกของรูปแบบ

$ cat หลามtxt
$ sed'1 วินาที / Python / perl /'หลามtxt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น ที่นี่. การเกิดขึ้นครั้งแรกของ 'Python' ในบรรทัดแรกจะถูกแทนที่ด้วย 'perl'

ไปที่ด้านบน

6. แทนที่การจับคู่ล่าสุดในไฟล์ด้วยข้อความใหม่

คำสั่งต่อไปนี้จะแทนที่รูปแบบการค้นหาที่เกิดขึ้นครั้งสุดท้าย 'งูหลาม 'โดยข้อความ 'ทุบตี'. ที่นี่, '$' สัญลักษณ์ถูกใช้เพื่อจับคู่การเกิดขึ้นครั้งสุดท้ายของรูปแบบ

$ cat หลามtxt
$ sed -e'$ s / Python / ทุบตี /'หลามtxt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

7. หลีกเลี่ยงแบ็กสแลชในคำสั่งแทนที่เพื่อจัดการการค้นหาและแทนที่เส้นทางไฟล์

จำเป็นต้องหลีกเลี่ยงแบ็กสแลชในพาธไฟล์เพื่อค้นหาและแทนที่ คำสั่งต่อไปนี้ของ `sed' จะเพิ่มแบ็กสแลช () ในพาธไฟล์

$โยนออก /บ้าน/อูบุนตู/รหัส/perl/add.pl| sed 's; /; \ /; g'

เอาท์พุท:

เส้นทางของไฟล์, '/home/ubuntu/code/perl/add.pl' มีให้เป็นอินพุตในคำสั่ง `sed' และผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

8. แทนที่ไฟล์ทั้งหมดพาธแบบเต็มด้วยชื่อไฟล์ no directory

ชื่อไฟล์สามารถดึงมาจากเส้นทางของไฟล์ได้อย่างง่ายดายโดยใช้ ` ชื่อฐาน` สั่งการ. คำสั่ง `sed` ยังสามารถใช้เพื่อดึงชื่อไฟล์จากเส้นทางของไฟล์ คำสั่งต่อไปนี้จะดึงชื่อไฟล์จากพาธไฟล์ที่จัดเตรียมโดยคำสั่ง `echo` เท่านั้น

$โยนออก '/home/ubuntu/temp/myfile.txt' | sed 'NS/.*///'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ที่นี่ชื่อไฟล์ ' myfile.txt' ถูกพิมพ์ออกมาเป็นผลงาน

ไปที่ด้านบน

9. แทนที่ข้อความ แต่เฉพาะในกรณีที่พบข้อความอื่นในสตริง

สร้างไฟล์ชื่อ ' dept.txt' ด้วยเนื้อหาต่อไปนี้เพื่อแทนที่ข้อความใด ๆ ตามข้อความอื่น

dept.txt

รายชื่อนักเรียนทั้งหมด:

CSE - นับ
EEE - นับ
พลเรือน - Count

คำสั่งแทนที่สองคำสั่งถูกใช้ในคำสั่ง `sed` ต่อไปนี้ นี่ข้อความว่า ' นับ ‘จะถูกแทนที่ด้วย 100 ในบรรทัดที่มีข้อความ 'CSE 'และข้อความ' นับ' จะถูกแทนที่ด้วย 70 ในบรรทัดที่มีรูปแบบการค้นหา ' NS' .

$แมวdept.txt
$sed -และ '/CSE/ s/จำนวน/100/; /EEE/ s/Count/70/;'dept.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

10. แทนที่ข้อความ แต่ถ้าไม่พบข้อความอื่นในสตริง

คำสั่ง `sed' ต่อไปนี้จะแทนที่ค่า 'Count' ในบรรทัดที่ไม่มีข้อความ 'CSE' dept.txt ไฟล์มีสองบรรทัดที่ไม่มีข้อความ 'CSE' ดังนั้น ' นับ ' ข้อความจะถูกแทนที่ด้วย 80 ในสองบรรทัด

$แมวdept.txt
$sed -ผม -และ '/CSE/! s/จำนวน/80/;'dept.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

11. เพิ่มสตริงก่อนและหลังรูปแบบการจับคู่โดยใช้ '1'

ลำดับของรูปแบบการจับคู่ของคำสั่ง `sed` จะแสดงด้วย '1', '2' และอื่นๆ คำสั่ง `sed` ต่อไปนี้จะค้นหารูปแบบ 'Bash' และหากรูปแบบตรงกันก็จะเข้าถึงได้โดย '1' ในส่วนของการแทนที่ข้อความ ที่นี่ข้อความ 'Bash' ถูกค้นหาในข้อความอินพุตและเพิ่มข้อความหนึ่งข้อความก่อนหน้าและอีกข้อความหนึ่งจะถูกเพิ่มหลังจาก '1'

$โยนออก 'ภาษาทุบตี' | sed 's/(Bash)/เรียนรู้ 1 การเขียนโปรแกรม/'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ที่นี่, ' เรียนรู้' เพิ่มข้อความก่อน 'ทุบตี' และ ' การเขียนโปรแกรม ' ข้อความถูกเพิ่มหลังจาก ' ทุบตี'.

ไปที่ด้านบน

12. ลบบรรทัดที่ตรงกัน

'NS' ตัวเลือกที่ใช้ในคำสั่ง `sed 'เพื่อลบบรรทัดใด ๆ ออกจากไฟล์ สร้างไฟล์ชื่อ os.txt และเพิ่มเนื้อหาต่อไปนี้เพื่อทดสอบการทำงานของ 'NS' ตัวเลือก.

cat os.txt

Windows
ลินุกซ์
Android
คุณ

คำสั่ง `sed` ต่อไปนี้จะลบบรรทัดเหล่านั้นออกจาก os.txt ไฟล์ที่มีข้อความ 'OS'

$แมวos.txt
$sed '/เดอะดี'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

13. ลบบรรทัดที่ตรงกันและ 2 บรรทัดหลังจากบรรทัดที่ตรงกัน

คำสั่งต่อไปนี้จะลบสามบรรทัดออกจากไฟล์ os.txt ถ้ารูปแบบ ' ลินุกซ์' ถูกพบ os.txt มีข้อความ 'ลินุกซ์ 'ในบรรทัดที่สอง ดังนั้นบรรทัดนี้และสองบรรทัดถัดไปจะถูกลบออก

$sed '/ ลินุกซ์ /, + 2d'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

14. ลบช่องว่างทั้งหมดที่ท้ายบรรทัดข้อความ

โดยใช้ [:ว่างเปล่า:] สามารถใช้คลาสเพื่อลบช่องว่างและแท็บออกจากข้อความหรือเนื้อหาของไฟล์ใดก็ได้ คำสั่งต่อไปนี้จะลบช่องว่างที่ส่วนท้ายของแต่ละบรรทัดของไฟล์ os.txt

$แมวos.txt
$sed 's/[[:blank:]]*$//'os.txt

เอาท์พุท:

os.txt มีบรรทัดว่างหลังจากแต่ละบรรทัดถูกลบโดยคำสั่ง `sed' ด้านบน

ไปที่ด้านบน

15. ลบทุกบรรทัดที่มีการจับคู่สองครั้งในบรรทัด

สร้างไฟล์ข้อความชื่อ input.txt ด้วยเนื้อหาต่อไปนี้และลบบรรทัดเหล่านั้นของไฟล์ที่มีรูปแบบการค้นหาสองครั้ง

input.txt

PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์
PHP เป็นภาษาโอเพ่นซอร์สและ PHP คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
PHP ไม่ขึ้นกับแพลตฟอร์ม

ข้อความ 'PHP' มีสองครั้งในบรรทัดที่สองของไฟล์ input.txt . ในตัวอย่างนี้ใช้คำสั่ง `sed` สองคำสั่งเพื่อลบบรรทัดที่มีรูปแบบ ' php ' สองครั้ง. คำสั่ง `sed' แรกจะแทนที่การเกิดขึ้นครั้งที่สองของ 'php' ในแต่ละบรรทัดด้วย ' ดล ' และส่งเอาต์พุตไปยังคำสั่ง `sed' ที่สองเป็นอินพุต คำสั่ง `sed' ตัวที่สองจะลบบรรทัดที่มีข้อความว่า ' ดล '.

$แมวinput.txt
$sed 's/php/dl/i2;t'input.txt| sed '/ดล/ด'

เอาท์พุท:

input.txt ไฟล์มีสองบรรทัดที่มีรูปแบบ 'php' สองครั้ง. ดังนั้นผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

16. ลบทุกบรรทัดที่มีแต่ช่องว่าง

เลือกไฟล์ใดๆ ที่มีบรรทัดว่างในเนื้อหาเพื่อทดสอบตัวอย่างนี้ input.txt ไฟล์ที่สร้างขึ้นในตัวอย่างก่อนหน้านี้ มีบรรทัดว่างสองบรรทัดที่สามารถลบได้โดยใช้คำสั่ง `sed` ต่อไปนี้ ที่นี่ ใช้ '^$' เพื่อค้นหาบรรทัดว่างในไฟล์ อินพุต.txt

$แมวinput.txt
$sed '/^$/d'input.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

17. ลบอักขระที่ไม่สามารถพิมพ์ได้ทั้งหมด

อักขระที่ไม่สามารถพิมพ์ได้สามารถลบออกจากข้อความใด ๆ ได้โดยการแทนที่อักขระที่ไม่สามารถพิมพ์ได้โดยไม่มี [:print:] class ถูกใช้ในตัวอย่างนี้เพื่อค้นหาอักขระที่ไม่สามารถพิมพ์ได้ ' ' เป็นอักขระที่ไม่สามารถพิมพ์ได้ และไม่สามารถแยกวิเคราะห์ได้โดยตรงด้วยคำสั่ง `echo' สำหรับสิ่งนี้ อักขระ ' ' ถูกกำหนดในตัวแปร $tab ที่ใช้ในคำสั่ง 'echo' เอาต์พุตของคำสั่ง `echo` ถูกส่งไปในคำสั่ง `sed` ซึ่งจะลบอักขระ ' ' ออกจากเอาต์พุต

$แท็บ= $'NS'
$โยนออก 'สวัสดี$tabWorld'
$โยนออก 'สวัสดี$tabWorld' | sed 's/[^[:print:]]//g'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น คำสั่ง 'echo' แรกจะพิมพ์เอาต์พุตที่มีพื้นที่แท็บ และคำสั่ง 'sed' จะพิมพ์เอาต์พุตหลังจากลบพื้นที่แท็บ

ไปที่ด้านบน

18. หากมีการจับคู่ในบรรทัดให้ต่อท้ายบรรทัด

คำสั่งต่อไปนี้จะต่อท้าย '10' ที่ท้ายบรรทัดที่มีข้อความ 'Windows' ใน os.txt ไฟล์.

$แมวos.txt
$sed '/ Windows / s / $ / 10 /'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง

ไปที่ด้านบน

19. หากมีการจับคู่ในบรรทัดให้แทรกบรรทัดก่อนข้อความ

คำสั่ง `sed` ต่อไปนี้จะค้นหาข้อความ ' PHP ไม่ขึ้นกับแพลตฟอร์ม' ใน input.txt ไฟล์ที่สร้างขึ้นมาก่อน หากไฟล์มีข้อความนี้ในบรรทัดใด ๆ ' PHP เป็นภาษาที่ตีความ ' จะถูกแทรกก่อนบรรทัดนั้น

$แมวinput.txt
$sed '/PHP เป็นอิสระจากแพลตฟอร์ม/ s/^/PHP เป็นภาษาที่แปลแล้ว /'input.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

20. หากมีการแข่งขันในบรรทัดให้แทรกบรรทัดหลังบรรทัดนั้น

คำสั่ง `sed` ต่อไปนี้จะค้นหาข้อความ ' ลินุกซ์' ในไฟล์ os.txt และหากข้อความอยู่ในบรรทัดใด ๆ ให้เขียนข้อความใหม่ ' อูบุนตู ' จะถูกแทรกหลังจากบรรทัดนั้น

$แมวos.txt
$sed 's/Linux/& Ubuntu/'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

21. หากไม่มีการแข่งขันให้ต่อท้ายบรรทัด

คำสั่ง `sed` ต่อไปนี้จะค้นหาบรรทัดเหล่านั้นใน os.txt ที่ไม่มีข้อความว่า 'ลินุกซ์' และต่อท้ายข้อความว่า ระบบปฏิบัติการ ' ที่ส่วนท้ายของแต่ละบรรทัด ที่นี่, ' $ ' สัญลักษณ์ใช้เพื่อระบุบรรทัดที่จะต่อท้ายข้อความใหม่

$แมวos.txt
$sed '/ลินุกซ์/! S/$/ ระบบปฏิบัติการ/'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น มีสามบรรทัดในไฟล์ os.txt ที่ไม่มีข้อความ 'Linux' และข้อความใหม่ที่เพิ่มที่ท้ายบรรทัดเหล่านี้

ไปที่ด้านบน

22. หากไม่มีการแข่งขันให้ลบบรรทัด

สร้างไฟล์ชื่อ web.txt และเพิ่มเนื้อหาต่อไปนี้และลบบรรทัดที่ไม่มีรูปแบบที่ตรงกัน web.txt HTML 5JavaScriptCSSPHPMySQLJQuery คำสั่ง `sed' ต่อไปนี้จะค้นหาและลบบรรทัดเหล่านั้นที่ไม่มีข้อความ 'CSS' $ cat web.txt$ sed '/CSS/!d' web.txt เอาท์พุท: ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น มีหนึ่งบรรทัดในไฟล์ที่มีข้อความ 'CSE' ดังนั้นผลลัพธ์จึงมีเพียงหนึ่งบรรทัด

ไปที่ด้านบน

23. ทำซ้ำข้อความที่ตรงกันหลังจากเพิ่มช่องว่างหลังข้อความ

คำสั่ง `sed` ต่อไปนี้จะค้นหาคำว่า 'to' ในไฟล์ python.txt และหากมีคำนั้นอยู่ คำเดียวกันนั้นจะถูกแทรกหลังคำค้นหาโดยเว้นวรรค ที่นี่, '&' สัญลักษณ์ใช้เพื่อต่อท้ายข้อความที่ซ้ำกัน

$แมวpython.txt
$sed -และ 's / ถึง / & ถึง / g'python.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง ที่นี่ คำว่า 'ถึง' ถูกค้นหาในไฟล์ python.txt และคำนี้มีอยู่ในบรรทัดที่สองของไฟล์นี้ ดังนั้น, 'ถึง ’ โดยเพิ่มช่องว่างหลังข้อความที่ตรงกัน

ไปที่ด้านบน

24. แทนที่รายการสตริงหนึ่งรายการด้วยสตริงใหม่

คุณต้องสร้างไฟล์รายการสองไฟล์เพื่อทดสอบตัวอย่างนี้ สร้างไฟล์ข้อความชื่อ list1.txt และเพิ่มเนื้อหาต่อไปนี้

รายการแมว1.txt

1001=>จาฟาร์ อาลี
1023=>Nir Hossain
1067=>จอห์น มิเชล

สร้างไฟล์ข้อความชื่อ list2.txt และเพิ่มเนื้อหาต่อไปนี้

$ cat list2.txt

1001CSE GPA3.63
1002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3.84

คำสั่ง `sed` ต่อไปนี้จะจับคู่กับคอลัมน์แรกของไฟล์ข้อความสองไฟล์ที่แสดงด้านบน และแทนที่ข้อความที่ตรงกันด้วยค่าของคอลัมน์ที่สามของไฟล์ list1.txt

$แมวlist1.txt
$แมวlist2.txt
$sed ``แมวlist1.txt| awk '{พิมพ์' -e s / '$ 1' / '$ 3' / '}'``<<<'` รายการแมว2.txt`'

เอาท์พุท:

1001, 1023 และ 1067 ของ list1.txt ไฟล์ตรงกับข้อมูลทั้งสามของ list2.txt ไฟล์และค่าเหล่านี้จะถูกแทนที่ด้วยชื่อที่สอดคล้องกันของคอลัมน์ที่สามของ list1.txt .

ไปที่ด้านบน

25. แทนที่สตริงที่ตรงกันด้วยสตริงที่มีการขึ้นบรรทัดใหม่

คำสั่งต่อไปนี้จะรับข้อมูลจากคำสั่ง `echo` และค้นหาคำ 'หลาม' ในข้อความ หากคำนั้นมีอยู่ในข้อความ แสดงว่าเป็นข้อความใหม่ 'ข้อความที่เพิ่ม' จะถูกแทรกด้วยการขึ้นบรรทัดใหม่ $ echo Bash Perl Python Java PHP ASP | sed 's/Python/เพิ่มข้อความ /' เอาท์พุท: ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

26. ลบบรรทัดใหม่ออกจากไฟล์และใส่เครื่องหมายจุลภาคที่ท้ายแต่ละบรรทัด

คำสั่ง `sed` ต่อไปนี้จะแทนที่แต่ละบรรทัดใหม่ด้วยเครื่องหมายจุลภาคในไฟล์ os.txt . ที่นี่, -กับ ตัวเลือกใช้เพื่อแยกบรรทัดด้วยอักขระ NULL

$sed -กับ 's/ /,/g'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

27. ลบเครื่องหมายจุลภาคและเพิ่มบรรทัดใหม่เพื่อแยกข้อความออกเป็นหลายบรรทัด

คำสั่ง `sed` ต่อไปนี้จะใช้บรรทัดที่คั่นด้วยเครื่องหมายจุลภาคจากคำสั่ง `echo` เป็นอินพุตและแทนที่เครื่องหมายจุลภาคด้วยการขึ้นบรรทัดใหม่

$โยนออก 'คานิซ ฟาเตมา ลำดับที่ 30' | sed 'NS/,/NS/NS'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ข้อความอินพุตประกอบด้วยข้อมูลที่คั่นด้วยเครื่องหมายจุลภาคสามรายการซึ่งจะถูกแทนที่ด้วยการขึ้นบรรทัดใหม่และพิมพ์เป็นสามบรรทัด

ไปที่ด้านบน

28. ค้นหาตัวพิมพ์เล็กและตัวพิมพ์ที่ตรงกันและลบบรรทัด

'I' ใช้ในคำสั่ง `sed' สำหรับการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ซึ่งระบุว่าไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คำสั่ง `sed` ต่อไปนี้จะค้นหาบรรทัดที่มีคำว่า 'ลินุกซ์ ' และลบบรรทัดจาก os.txt ไฟล์.

$แมวos.txt
$sed '/ลินุกซ์/รหัส'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน os.txt มีคำว่า 'Linux' ที่ตรงกับรูปแบบ 'linux' สำหรับการค้นหาที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และถูกลบ

ไปที่ด้านบน

29. ค้นหาตัวพิมพ์เล็กและตัวพิมพ์ที่ตรงกันและแทนที่ด้วยข้อความใหม่

คำสั่ง 'sed' ต่อไปนี้จะรับข้อมูลจากคำสั่ง 'echo' และแทนที่คำว่า 'bash' ด้วยคำว่า 'PHP'

$โยนออก 'ฉันชอบการเขียนโปรแกรมทุบตี' | sed 's/ทุบตี/PHP/i'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ที่นี่คำว่า 'ทุบตี' จับคู่กับคำว่า 'ทุบตี' สำหรับการค้นหาที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และแทนที่ด้วยคำว่า 'PHP'

ไปที่ด้านบน

30. ค้นหาตัวพิมพ์เล็กที่ตรงกันและแทนที่ด้วยตัวพิมพ์ใหญ่ทั้งหมดของข้อความเดียวกัน

' ยู' ใช้ใน `sed' เพื่อแปลงข้อความใด ๆ ให้เป็นอักษรตัวพิมพ์ใหญ่ทั้งหมด คำสั่ง `sed` ต่อไปนี้จะค้นหาคำว่า 'ลินุกซ์ ' ใน os.txt file และถ้าคำนั้นมีอยู่ มันจะแทนที่คำด้วยตัวพิมพ์ใหญ่ทั้งหมด

$แมวos.txt
$sed 's / (linux ) / U 1 / Ig'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น คำว่า 'Linux' ของไฟล์ os.txt จะถูกแทนที่ด้วยคำว่า 'LINUX'

ไปที่ด้านบน

31. ค้นหาตัวพิมพ์เล็กที่ตรงกันและแทนที่ด้วยตัวพิมพ์เล็กทั้งหมดของข้อความเดียวกัน

'NS' ใช้ใน `sed' เพื่อแปลงข้อความเป็นอักษรตัวพิมพ์เล็กทั้งหมด คำสั่ง `sed` ต่อไปนี้จะค้นหาคำว่า 'ลินุกซ์' ใน os.txt ไฟล์และแทนที่คำด้วยอักษรตัวพิมพ์เล็กทั้งหมด

$แมวos.txt
$sed 's / (linux ) / L 1 / Ig'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น คำว่า 'Linux' ถูกแทนที่ด้วยคำว่า 'linux' ที่นี่

ไปที่ด้านบน

32. แทนที่อักขระตัวพิมพ์ใหญ่ทั้งหมดของข้อความด้วยอักขระตัวพิมพ์เล็ก

คำสั่ง `sed` ต่อไปนี้จะค้นหาอักขระตัวพิมพ์ใหญ่ทั้งหมดใน os.txt ไฟล์และแทนที่อักขระด้วยอักษรตัวพิมพ์เล็กโดยใช้ 'L'

$แมวos.txt
$sed 's/(.*)/L1/'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

33. ค้นหาหมายเลขในบรรทัดและต่อท้ายสัญลักษณ์สกุลเงินใด ๆ ก่อน ตัวเลข

สร้างไฟล์ชื่อ items.txt โดยมีเนื้อหาดังต่อไปนี้

items.txt

HDD 100
จอภาพ 80
เมาส์ 10

คำสั่ง `sed` ต่อไปนี้จะค้นหาตัวเลขในแต่ละบรรทัดของ items.txt ไฟล์และต่อท้ายสัญลักษณ์สกุลเงิน '$' ก่อนแต่ละตัวเลข

$แมวitems.txt
$sed 's / ([0-9] ) / $ 1 / g'items.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น ที่นี่ สัญลักษณ์ '$' จะถูกเพิ่มก่อนหมายเลขของแต่ละบรรทัด

ไปที่ด้านบน

34. ใส่เครื่องหมายจุลภาคให้กับตัวเลขที่มีมากกว่า 3 หลัก

คำสั่ง 'sed' ต่อไปนี้จะใช้ตัวเลขเป็นอินพุตจากคำสั่ง 'echo' และเพิ่มเครื่องหมายจุลภาคหลังจากแต่ละกลุ่มตัวเลขสามหลักนับจากด้านขวา ที่นี่ ':a' หมายถึงป้ายกำกับและ 'ta' ใช้เพื่อทำซ้ำกระบวนการจัดกลุ่ม

$โยนออก '5098673' | sed -และ:ถึง-และ 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ตา'

เอาท์พุท:

หมายเลข 5098673 ระบุไว้ในคำสั่ง `echo` และคำสั่ง `sed` สร้างจำนวน 5,098,673 โดยการเติมเครื่องหมายจุลภาคหลังกลุ่มตัวเลขสามหลักแต่ละกลุ่ม

ไปที่ด้านบน

35. แทนที่อักขระแท็บด้วยอักขระช่องว่าง 4 ตัว

คำสั่ง `sed` ต่อไปนี้จะแทนที่อักขระแต่ละแท็บ ( ) ด้วยอักขระเว้นวรรคสี่ตัว สัญลักษณ์ '$' ใช้ในคำสั่ง 'sed' เพื่อให้ตรงกับอักขระแท็บ และ 'g' ใช้เพื่อแทนที่อักขระแท็บทั้งหมด

$โยนออก -และ '1NS2NS3' | sed$'s/ / /g'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

36. แทนที่อักขระช่องว่าง 4 ตัวที่ต่อเนื่องกันด้วยอักขระแท็บ

คำสั่งต่อไปนี้จะแทนที่อักขระ 4 ตัวที่ต่อเนื่องกันด้วยอักขระแท็บ ( )

$โยนออก -และ '1 2' | sed$'s/ / /g'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

37. ตัดบรรทัดทั้งหมดเป็น 80 ตัวอักษรแรก

สร้างไฟล์ข้อความชื่อ in.txt ที่มีบรรทัดมากกว่า 80 อักขระเพื่อทดสอบตัวอย่างนี้

in.txt

PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์
PHP เป็นภาษาโอเพ่นซอร์สและ PHP คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ PHP ไม่ขึ้นกับแพลตฟอร์ม
คำสั่ง `sed` ต่อไปนี้จะตัดทอนแต่ละบรรทัดของ in.txt ไฟล์เป็น 80 ตัวอักษร

$แมวin.txt
$sed 's/(^.{1,80}).*/1/'in.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น บรรทัดที่สองของไฟล์ in.txt มีอักขระมากกว่า 80 ตัว และบรรทัดนี้จะถูกตัดทอนในเอาต์พุต

ไปที่ด้านบน

38. ค้นหาสตริง regex และต่อท้ายข้อความมาตรฐานบางส่วนหลังจากนั้น

คำสั่ง `sed` ต่อไปนี้จะค้นหาข้อความ ' สวัสดี 'ในข้อความอินพุตและต่อท้ายข้อความ' จอห์น ' หลังจากข้อความนั้น

$โยนออก 'สวัสดีสบายดีไหม?' | sed 's/(สวัสดี)/1 จอห์น/'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

39. ค้นหาสตริง regex และต่อท้ายข้อความหลังจากการจับคู่ที่สองในแต่ละบรรทัด

คำสั่ง `sed` ต่อไปนี้จะค้นหาข้อความ ' PHP ‘ในแต่ละบรรทัดของ input.txt และแทนที่การจับคู่ที่สองในแต่ละบรรทัดด้วยข้อความ 'เพิ่มข้อความใหม่' .

$แมวinput.txt
$sed 's/(PHP)/1 (เพิ่มข้อความใหม่)/2'input.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น ข้อความค้นหา ' PHP ’ ปรากฏสองครั้งในบรรทัดที่สองและสามของ input.txt ไฟล์. ดังนั้นข้อความว่า ' เพิ่มข้อความใหม่ ’ ถูกแทรกในบรรทัดที่สองและสาม

ไปที่ด้านบน

40. เรียกใช้สคริปต์ `sed` หลายบรรทัดจากไฟล์

ไฟล์ `sed` หลายสคริปต์สามารถเก็บไว้ในไฟล์และสคริปต์ทั้งหมดสามารถดำเนินการร่วมกันได้โดยการรันคำสั่ง `sed` สร้างไฟล์ชื่อ 'sedcmd ' และเพิ่มเนื้อหาต่อไปนี้ ในไฟล์มีการเพิ่มสคริปต์ 'sed' สองรายการ หนึ่งสคริปต์จะแทนที่ข้อความ ' PHP ' โดย 'งูเห่า ' สคริปต์อื่นจะแทนที่ข้อความ ' เป็นอิสระ 'โดยข้อความ' ขึ้นอยู่กับ '.

sedcmd

NS/PHP/งูเห่า/
NS/เป็นอิสระ/ขึ้นอยู่กับ/

คำสั่ง `sed' ต่อไปนี้จะแทนที่ข้อความ 'PHP' และ 'independent' ทั้งหมดด้วย 'ASP' และ 'dependent' ที่นี่ ตัวเลือก '-f' ถูกใช้ในคำสั่ง `sed' เพื่อรันสคริปต์ `sed' จากไฟล์

$แมวsedcmd
$sed -NSsedcmd input.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

41. จับคู่รูปแบบหลายบรรทัดและแทนที่ด้วยข้อความหลายบรรทัดใหม่

คำสั่ง `sed` ต่อไปนี้จะค้นหาข้อความหลายบรรทัด 'ลินุกซ์ แอนดรอยด์' และหากรูปแบบตรงกัน บรรทัดที่ตรงกันจะถูกแทนที่ด้วยข้อความหลายบรรทัด ‘Ubuntu Android Lollipop '. ที่นี่ P และ D ใช้สำหรับการประมวลผลแบบหลายบรรทัด

$แมวos.txt
$sed '$!N;s/Linux Andoid/Ubuntu Andoid Lollipop/;P;D'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

42. แทนที่ลำดับของคำสองคำในข้อความที่ตรงกับรูปแบบ

คำสั่ง 'sed' ต่อไปนี้จะรับอินพุตของคำสองคำจากคำสั่ง 'echo' และแทนที่ลำดับของคำเหล่านี้

$โยนออก 'perl หลาม' | sed -และ 's/([^ ]*) *([^ ]*)/2 1/'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

43. ดำเนินการคำสั่ง `sed` หลายคำสั่งจาก command-line

ตัวเลือก '-e' ใช้ในคำสั่ง 'sed' เพื่อเรียกใช้สคริปต์ 'sed' หลายรายการจากบรรทัดคำสั่ง คำสั่ง 'sed' ต่อไปนี้จะใช้ข้อความเป็นอินพุตจากคำสั่ง 'echo' และแทนที่ ' อูบุนตู ' โดย ' คูบุนตู ' และ ' ร้อย ' โดย ' Fedora '.

$โยนออก 'อูบุนตู เซนโตส เดเบียน' | sed -และ ของ/Ubuntu/Kubuntu/; s/Centos/Fedora/'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ที่นี่ 'Ubuntu' และ 'Centos' จะถูกแทนที่ด้วย 'Kubuntu' และ 'Fedora'

ไปที่ด้านบน

44. รวม `sed' กับคำสั่งอื่น

คำสั่งต่อไปนี้จะรวมคำสั่ง 'sed' กับคำสั่ง 'cat' คำสั่ง `sed` แรกจะรับอินพุตจาก os.txt ไฟล์และส่งผลลัพธ์ของคำสั่งไปยังคำสั่ง `sed' ที่สองหลังจากแทนที่ข้อความ 'Linux' ด้วย 'Fedora' คำสั่ง `sed' ที่สองจะแทนที่ข้อความ 'Windows' ด้วย 'Windows 10'

$แมวos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

45. แทรกบรรทัดว่างในไฟล์

สร้างไฟล์ชื่อ stdlist โดยมีเนื้อหาดังต่อไปนี้

stdlist

#ID #ชื่อ
[101] -แต่
[102] -เนฮา

ตัวเลือก 'G' ใช้เพื่อแทรกบรรทัดว่างในไฟล์ คำสั่ง `sed` ต่อไปนี้จะแทรกบรรทัดว่างหลังแต่ละบรรทัดของ stdlist ไฟล์.

$แมวstdlist
$sedG stdlist

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น มีการแทรกบรรทัดว่างหลังแต่ละบรรทัดของไฟล์

ไปที่ด้านบน

46. ​​แทนที่อักขระที่เป็นตัวอักษรและตัวเลขทั้งหมดด้วยช่องว่างในแต่ละบรรทัดของไฟล์

คำสั่งต่อไปนี้จะแทนที่อักขระที่เป็นตัวอักษรและตัวเลขทั้งหมดด้วยช่องว่างใน stdlist ไฟล์.

$แมวstdlist
$but 's / [A-Za-z0-9] // ก'stdlist

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งข้างต้น

ไปที่ด้านบน

47. ใช้ '&' เพื่อพิมพ์สตริงที่ตรงกัน

คำสั่งต่อไปนี้จะค้นหาคำที่ขึ้นต้นด้วย 'L' และแทนที่ข้อความโดยการต่อท้าย 'สตริงที่ตรงกันคือ - ' ด้วยคำที่ตรงกันโดยใช้สัญลักษณ์ '&' ที่นี่ 'p' ใช้เพื่อพิมพ์ข้อความที่แก้ไข

$sed -NS 's/^L/Matched String คือ - &/p'os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน

ไปที่ด้านบน

48. สลับคู่ของคำในไฟล์

สร้างไฟล์ข้อความชื่อ course.txt โดยมีเนื้อหาต่อไปนี้เป็นคู่คำในแต่ละบรรทัด

course.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

คำสั่งต่อไปนี้จะเปลี่ยนคู่ของคำในแต่ละบรรทัดของไฟล์ course.txt .

$sed 's/([^ ]*) *([^ ]*)/2 1/'course.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากสลับคู่ของคำในแต่ละบรรทัด

ไปที่ด้านบน

49. ใช้อักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่

คำสั่ง `sed' ต่อไปนี้จะนำข้อความอินพุตจากคำสั่ง 'echo' และแปลงอักขระตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่

$โยนออก 'ฉันชอบการเขียนโปรแกรมทุบตี' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน ข้อความอินพุต ฉันชอบ bash programming ถูกพิมพ์ตามที่ I Like Bash Programming หลังจากใช้อักษรตัวพิมพ์ใหญ่ในคำแรก

ไปที่ด้านบน

50. พิมพ์หมายเลขบรรทัดของไฟล์

สัญลักษณ์ '=' ใช้คำสั่ง `sed' เพื่อพิมพ์หมายเลขบรรทัดก่อนแต่ละบรรทัดของไฟล์ คำสั่งต่อไปนี้จะพิมพ์เนื้อหาของ os.txt ไฟล์ที่มีหมายเลขบรรทัด

$sed '='os.txt

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่งด้านบน มีสี่บรรทัดใน os.txt ไฟล์. ดังนั้นหมายเลขบรรทัดจะถูกพิมพ์ก่อนแต่ละบรรทัดของไฟล์

ไปที่ด้านบน

บทสรุป:

การใช้งานคำสั่ง `sed' ต่างๆ ได้อธิบายไว้ในบทช่วยสอนนี้โดยใช้ตัวอย่างง่ายๆ เอาต์พุตของสคริปต์ 'sed' ทั้งหมดที่กล่าวถึงในที่นี้สร้างขึ้นชั่วคราวและเนื้อหาของไฟล์ต้นฉบับยังคงไม่เปลี่ยนแปลง แต่ถ้าคุณต้องการ คุณสามารถแก้ไขไฟล์ต้นฉบับได้โดยใช้ตัวเลือก –i หรือ –in-place ของคำสั่ง `sed หากคุณเป็นผู้ใช้ Linux ใหม่และต้องการเรียนรู้การใช้งานพื้นฐานของคำสั่ง `sed' เพื่อดำเนินการจัดการสตริงประเภทต่างๆ บทช่วยสอนนี้จะช่วยคุณได้ หลังจากอ่านบทช่วยสอนนี้แล้ว หวังว่าผู้ใช้ทุกคนจะได้รับแนวคิดที่ชัดเจนเกี่ยวกับฟังก์ชันของคำสั่ง `sed'

คำถามที่พบบ่อย

คำสั่ง sed ใช้ทำอะไร?

คำสั่ง sed มีประโยชน์หลายอย่าง อย่างที่กล่าวไปแล้ว การใช้งานหลักคือการแทนที่คำในไฟล์ หรือการค้นหาและแทนที่

สิ่งที่ยอดเยี่ยมเกี่ยวกับ sed ก็คือ คุณสามารถค้นหาคำในไฟล์และแทนที่มันได้ แต่คุณไม่จำเป็นต้องเปิดไฟล์ด้วยซ้ำ เพราะ sed ทำทุกอย่างเพื่อคุณ!

นอกจากนี้ยังสามารถใช้สำหรับการลบ สิ่งที่คุณต้องทำคือพิมพ์คำที่คุณต้องการค้นหา แทนที่ หรือลบลงใน sed แล้วคำนั้นจะแสดงให้คุณเห็น – จากนั้นคุณสามารถเลือกที่จะแทนที่คำนั้นหรือลบร่องรอยของคำทั้งหมดออกจากไฟล์ของคุณ

sed เป็นเครื่องมือที่ยอดเยี่ยมในการแทนที่สิ่งต่าง ๆ เช่นที่อยู่ IP และทุกสิ่งที่มีความไวสูงซึ่งคุณไม่ต้องการใส่ลงในไฟล์ sed เป็นสิ่งที่วิศวกรซอฟต์แวร์ทุกคนต้องรู้!

S และ G ในคำสั่ง sed คืออะไร?

ในแง่ง่ายที่สุด ฟังก์ชัน S ที่ใช้ใน sed นั้นหมายถึง 'การแทนที่' หลังจากพิมพ์ S คุณสามารถแทนที่หรือแทนที่สิ่งที่คุณต้องการได้ เพียงแค่พิมพ์ S จะแทนที่คำที่เกิดขึ้นครั้งแรกในบรรทัดเท่านั้น

ดังนั้น หากคุณมีประโยคหรือบรรทัดที่กล่าวถึงมากกว่าหนึ่งครั้ง ฟังก์ชัน S นั้นไม่เหมาะ เนื่องจากจะใช้แทนการเกิดขึ้นครั้งแรกเท่านั้น คุณสามารถระบุรูปแบบเพื่อให้ S แทนที่คำทุกๆ สองครั้งได้เช่นกัน

การระบุ G ที่ส่วนท้ายของคำสั่ง sed จะทำการแทนที่แบบโกลบอล (นั่นคือสิ่งที่ G หมายถึง) ด้วยเหตุนี้ หากคุณระบุ G คำนั้นจะแทนที่ทุกคำที่คุณเลือก แทนที่จะเป็นเพียงการเกิดขึ้นครั้งแรกที่ S ทำ

ฉันจะรัน sed script ได้อย่างไร

คุณสามารถเรียกใช้ sed script ได้หลายวิธี แต่ที่พบบ่อยที่สุดคือในบรรทัดคำสั่ง ที่นี่คุณสามารถระบุ sed และไฟล์ที่คุณต้องการใช้คำสั่งได้

วิธีนี้ช่วยให้คุณใช้ sed กับไฟล์นั้นได้ ช่วยให้คุณค้นหา ลบ และแทนที่ได้ตามต้องการ

คุณยังสามารถใช้ในเชลล์สคริปต์ได้ และด้วยวิธีนี้คุณสามารถส่งสิ่งที่คุณต้องการไปยังสคริปต์ได้ และมันจะเรียกใช้คำสั่ง find and replace ให้กับคุณ วิธีนี้มีประโยชน์สำหรับการไม่ต้องการระบุข้อมูลที่มีความละเอียดอ่อนสูงในสคริปต์ ดังนั้นคุณสามารถส่งผ่านเป็นตัวแปรแทนได้

จำไว้ว่าสิ่งนี้ใช้ได้เฉพาะบน Linux เท่านั้น ดังนั้นคุณจะต้องแน่ใจว่าคุณมีบรรทัดคำสั่ง Linux เพื่อเรียกใช้ sed script ของคุณ