ห่างหายการเขียนบล็อคไปเกือบครึ่งปี เหตุเกิดมาจากติดเกมงอมแงม ในโพสต์นี้จะนำเสนอทริคเล็กๆ น้อยๆ ในการ search และ replace string ลักษณการใช้งานจะเป็นอย่างนี้ครับ
find . -name "*.type" -exec sed -i 's/old/new/g' {} ;
ใช้คำสั่ง find เพื่อค้นหาไฟล์ที่มีนามสกุลตามที่ต้องการ (Regex) หลังจากนั้นให้ทำคำสั่ง (exec) sed เพื่อ search และ replace string ในไฟล์ที่โดนค้นหาครับ ({})
เช่น ผมมีไฟล์ SQL อยู่หลายๆ ไฟล์ ผมต้องการจะเปลี่ยนคำว่า MyISAM ในไฟล์ SQL ทั้งหมดนี้ ให้เปลี่ยนเป็น InnoDB จะใช้ดังตัวอย่างนี้ครับ
file /tmp -name "*.sql" -exec sed -i 's/MyISAM/InnoDB/g' {} ;