作者zyxwvoklove (天行者)
看板Linux
標題[問題] Sed改名字
時間Fri Feb 6 18:11:42 2015
小弟不才
又來問有關於bash的問題
這次是sed
我有一個檔案
其中一行
file='/Users/zyxwv/20140909/sloan/onempc/plusrz/XMMXCSJ0016.6-0102'
這個樣子
其中 XMMXCSJ0016.6-0102
想要取代成 XMMXCSJ0023.2+0012
於是找sed
指令像是這樣
sed -i 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/' XMMXCSJ0023.2+0012
可是檔案裡面還是顯示XMMXCSJ0016.6-0102
無論我寫這樣
sed -i 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/g' XMMXCSJ0023.2+0012
還是
sed -i.bu 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/g' XMMXCSJ0023.2+0012
或者
sed -i '' 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/g' XMMXCSJ0023.2+0012
最終
sed -i "" 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/g' XMMXCSJ0023.2+0012
就是沒有變動到
想請問各位 是哪兒出了問題 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.136.52
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1423217506.A.095.html
→ stimim: 最後面不是應該要放被修改的檔案嗎? 02/06 18:52
→ stimim: sed -i 's/pattern/replacement' file_to_edit 02/06 18:53
→ zyxwvoklove: 有啊 就是XMMXCSJ0023.2+0012 他是檔名 02/06 19:43
所以依照你說的 sed -i 's/pattern/replacement' file_to_edit
sed -i 's/XMMXCSJ0016.6-0102/XMMXCSJ0023.2+0012/' XMMXCSJ0023.2+0012
我就這樣呀 可是不給我機會 我難過
※ 編輯: zyxwvoklove (27.105.104.139), 02/06/2015 21:49:46
→ kenduest: 你操作的系統是 linux 系統嗎? 02/06 23:55
→ kenduest: 依據你畫面來看好像是 mac os ? 02/06 23:58
→ kenduest: mac os x 的 sed,-i 後面要給一個備份檔案名稱 02/06 23:59
→ kenduest: sed -i myfile.bak 's/aaa/bbb/' myfile 02/07 00:00
→ zyxwvoklove: mac會導致不同這樣呀... 02/07 01:07