ต่อจากนี้จะลอง test ว่ามันทำงานอะไรได้บ้าง
1. Substitue - อันนี้เป็น function หลักเลยที่เราใช้อยู่ (ตอนนี้ใช้เป็นอยู่อย่างเดียว)
sed -e 's/line/section/g' test.txt
sed 's/line/section/' test.txt
sed 's/line/section/g' test.txt
สามตัวอย่างนี้ให้ผลลัพธ์เหมือนกันเลยอ่ะ ก็คือจะเปลี่ยนข้อมูลทั้งไฟล์ โดยเปลี่ยนข้อความ 'line' ให้เป็น 'section'

sed 's/line/section/g' test.txt > result.txt
ตัวอย่างสุดท้าย จะบอกว่า ถ้าไม่ระบุ output file - SED จะส่งผลลัพธ์ออกไปยัง STDOUT ซึ่งก็คือจอภาพ ถ้าระบุไว้มันก็จะ SAVE เข้า output file ซึ่งผลก็คือเราจะได้ file ใหม่ที่ผ่านการแก้ไขแล้ว โดยไม่ไปกวนกับไฟล์ต้นฉบับ
(ซึ่งก็ดี เพราะเกิดพลาดอะไรไป ก็จะได้ไม่ต้องเศร้ามากนัก)
sed 's/line/section/g' < test.txt > result.txt
ลองเช็ค syntax ของ SED
s/regexp/replacement/flags
นี่คือคำสั่งที่ใช้ในการทำ substitute
s แรกคือ s command - substitute command
regexp - ข้อความที่จะถูกแทนที่ - สามารถใช้เป็น Regular Expression ได้ด้วย (RegExp นี่เอาไว้จะเอามาเขียนด้วยดีกว่า เพราะใช้ประโยชน์ได้เยอะ)
replacement - ข้อความที่จะเอาไปแทนที่ - อันนี้ใช้ RegExp ไม่ได้อยู่แล้ว
flags - จะมีหรือไม่มีก็ได้
flags สำหรับ substitute
g - แทนทุกๆ RegExp ด้วย Replacement - แทนทุกอัน ทุกตำแหน่ง
บางครั้งคำสั่งบางตัวใน sed อาจทำให้เกิดความสับสน(มั้ง) ดังนั้นทางที่ดี ควรใส่ quote คร่อมเอาไว้ อย่างน้อยเพื่อความสบายใจ
เช่น
sed s/line/section/g testfile.txt
sed 's/line/section/g' testfile.txt
ทั้งสองตัว(ตอนนี้)ให้ผลเหมือนกัน แต่แบบมี quote ชัวร์กว่าว่าจะไม่ error
ยังมีอีก แต่แปะไว้ก่อนนา...