星期四, 6月 21, 2007

sed 是行編輯器

使用 sed 做字串取代時,若同一行中有二個以上同樣的字串時,通常只有第一個字串會被處理。
例如:
檔案 Xfile 有一行如下
Xin1 Xin1 Xin1

取代指令如下
sed -e 's/Xin1/Allin1/' -i Xfile

則結果會是
Allin1 Xin1 Xin1

這是因為 sed 是行編輯器,而一列只處理一次。
若要全部都取代,則取代指令要加上 g(global)

sed -e 's/Xin1/Allin1/g' -i Xfile

參考資料:
1. http://libai.math.ncu.edu.tw/bcc16/6/vi/vi09.html
2. http://irw.ncit.edu.tw/peterju/tips.html

沒有留言: