2018年3月26日 星期一

sed直接編輯文件,做文字取代

sed可以直接編輯文件,取代或是修改特定pattern。例如說《各種恐懼》放到phobia.txt這個檔案中,內容如下:
homophobia
hydrophobia
phobia
xenophobia

這時候要把這個文件的phobia通通改成phobe
  1. sed -i -e 's/phobia/phobe/' phobia.txt
  2. sed -i -e 's/phobia/phobe/g' phobia.txt
  3. sed -i .bak -e 's/phobia/phobe/g' phobia.txt
注意-i代表Edit file in-place,也就是直接編輯檔案的意思

第2個指令多了一個g, 代表同一行裡面如果出現多次則通通修改;第1個指令只會改掉每一行裡面第一個遇到的pattern。在Mac裡面-i的行為跟在Linux下會不一樣,像是第3行的指令在Linux下就只會直接編輯檔案;但在Mac下卻會被備份一個檔案後面接著-e

第3行指令裡面的-i後面接.bak意思為,把原始的檔案多加.bak存成備份


_EOF_

沒有留言:

張貼留言