sed 替換文件中的字符串html
2016年04月13日 03:15:16web
閱讀數:17610centos
sed -e 's/foo/bar/' myfile
bash
將 myfile 文件中每行第一次出現的foo
用字符串bar
替換,而後將該文件內容輸出到標準輸出.net
sed -e 's/foo/bar/g' myfile
code
g
使得 sed 對文件中全部符合的字符串都被替換htm
sed -i 's/foo/bar/g' myfile
選項 i
使得 sed 修改文件blog
sed -i 's/foo/bar/g' ./m*
批量操做當前目錄下以 m 開頭的文件pdo
sed -i 's/foo/bar/g' `grep foo -rl --include="m*" ./`
字符串
``
括起來的grep命令,表示將grep命令的的結果做爲操做文件
grep 命令中,選項r
表示查找全部子目錄,l
表示僅列出符合條件的文件名,用來傳給sed命令作操做,--include="m*"
表示僅查找 m 開頭的文件
操做示例:
sed -i '' 's/<img src=\"http:\/\/website\.cn\/f\/30/<img src=\"30/g' ./*.htm
錯誤:
command a expects \ followed by text
選項i
的用途是直接在文件中進行替換。爲防止誤操做帶來災難性的後果,sed在替換前能夠自動對文件進行備份,前提是須要提供一個後綴名。mac osx下是強制要求備份的,centos下是可選的
sed -i '.bak' 's/foo/bar/g' ./m*
若是不須要備份文件,使用空字符串來取消備份,mac osx下能夠使用以下命令完成替換操做:
sed -i '' 's/foo/bar/g' ./m*
sed: RE error: illegal byte sequence’
可設置環境變量解決
export LC_COLLATE='C'
export LC_CTYPE='C'
[1] http://www.path8.net/tn/archives/4077
[2] http://blog.sina.com.cn/s/blog_5fd841bf0101dt0r.html
[3] http://www.netingcn.com/mac-osx-sed-command-expects-followed-by-text.html
[4] http://lfstar.blog.163.com/blog/static/5637898720134365651965/
[5] http://stackoverflow.com/questions/11287564/getting-sed-error-illegal-byte-sequence-in-bash