วันจันทร์ที่ 17 พฤษภาคม พ.ศ. 2553

เรียนรู้คำสั่ง sed บนระบบปฏิบัติการ FreeBSD

รูปแบบคำสั่ง sed ค้นหา แล้วแทนที่ข้อความใหม่ทันที
# sed -i'' -e 's,ข้อความที่ต้องการค้นหา,ข้อความที่ต้องการแทนที่,g' ตำแหน่งที่อยู่ไฟล์ที่ต้องการแก้ไขด้วยคำสั่ง sed
ตัวอย่าง 1 ต้องการค้นหาไอพี 192.168.5.100 แล้วแทนที่ด้วยไอพี 192.168.1.1 จากไฟล์ /etc/rc.conf
# sed -i'' -e 's,192.168.5.100,192.168.1.1,g' /etc/rc.conf
ตัวอย่าง 2 ต้องการค้นหา dc0 แล้วแทนที่ด้วย em0 จากไฟล์ /etc/rc.conf
ns# sed -i'' -e 's,dc0,em0,g' /home/rc.conf
ตัวอย่าง 3 ค้นหาแล้วแทนที่ โดยจะไปสร้างไฟล์ใหม่เพิ่มอีก จะได้ไฟล์เดิม-e
# sed -e 's,dc0,em0,g' -i'' /home/rc.conf ผลลัพธ์ จะไปสร้างไฟล์ใหม่อีก ได้ไฟล์ rc.conf-e
ตัวอย่าง 4 สั่งให้คำสั่ง sed แก้ไขพร้อมกัน หลาย ๆ ข้อความ ดังนี้
กรณีศึกษา
- ต้องการแก้ไขชื่อแลนวงนอกจาก em0 แทนที่ด้วย dc0
- ต้องการแก้ไขไอพี server จากไอพี 192.168.5.2 เป็นไอพี 192.168.1.2
- ต้องการแก้ไขค่า netmask จาก 255.255.255.0 เป็น 255.255.255.248เขียนคำสั่ง sed -i '' -e ได้แบบนี้
# sed -i '' -e 's,em0,dc0,g' -e 's,192.168.5.2,192.168.1.2,g' -e 's,255.255.255.0,255.255.255.248,g' /home/rc.conf

ขอบพระคุณพี่มะขาม ที่แนะนำการใช้คำสั่ง sed
เจ้าของบทความ ครูมานิส สลางสิงห์

ไม่มีความคิดเห็น:

แสดงความคิดเห็น