sed

Topic: 
 

ที่มาจริง ๆ แล้ว ต้องการค้นหาและแทนที่เอกสารในไฟล์ .doc จึงสั่งด้วยคำสั่งว่า
$ sed -i 's/OLD/NEW/g' *.doc
ไม่ได้ผล นึกว่ารหัสเอกสารผิด เลยเป็นที่มาของสคริปต์อันนี้ คือค้นหาและแทนที่เอกสารทั้ง utf-8 และ tis-620 โดยไม่สนใจว่าเป็นเอกสารชนิดใด
(สุดท้ายปรากฎว่าไม่ได้ผล เพราะ OpenOffice ไม่ได้เก็บไว้ในรูป Text file ปกติ
ถึงจะโง่ไปแล้ว แต่บันทึกไว้หน่อยดีกว่า เผื่อได้ใช้ทีหลัง)

$ vi sed_i.py

#!/usr/bin/env python
# -*- coding: utf8 -*-
"""Replace thai string in file"""

import sys, os

def usage(prog):
 

บันทึกการค้นหาและแทนที่ไฟล์ในไดเรคทอรี่ ด้วยคำสั่ง sed
จะค้นหาคำว่า old และแทนที่ด้วยคำว่า new ทุกไฟล์ในไดเรคทอรี่ นำไฟล์ใหม่ไปเก็บใน ./temp
# mkdir temp
# for i in *; do
  if [ -f $i ]; then
    sed -e 's/old/new/g' $i > temp/$i
  fi
done

เพิ่มเติม
ทำเป็นคำสั่งสำเร็จรูป
# OLD=old
# NEW=new
# mkdir temp
# for i in *; do
  if [ -f $i ]; then
    sed -e "s/$OLD/$NEW/g" $i > temp/$i
  fi
done

Subscribe to RSS - sed