1)單字符替換:在命令模式下使光標(biāo)位于要替換的字符,按r,再按需要的字符;
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括山東網(wǎng)站建設(shè)、山東網(wǎng)站制作、山東網(wǎng)頁制作以及山東網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,山東網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到山東省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
2)取代字符串:在命令模式下
$s/string/replae/g
會將全文的string字符串取代為replace字符串,其中1,$s就是指搜尋區(qū)間為文章從頭至尾的意思,g則是表示全部取代不必確認(rèn)。
%s/string/replace/c:同樣會將全文的string字符串取代為replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c則是表示要替代之前必須再次確認(rèn)是否取代。
1,20s/string/replace/g:將1至20行間的string替代為relpace字符串。
Linux下批量替換多個文件中的字符串的簡單方法。用sed命令可以批量替換多個文件中的字符串。
命令如下:
sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目錄
例如:我要把www目錄下的所有文件里的 charset=gb2312 替換為 charset=UTF-8,執(zhí)行命令:
sed -i "s/charset=gb2312/charset=UTF-8/g" `grep charset=gb2312 -rl /www`
即可。
解釋一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
這個命令組合很強(qiáng)大,要注意備份文件。
1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json
---指定文件替換,將文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
2.?sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`
---批量文件替換,遞歸查找含CANCEL_TIME的文件,將所有文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname
---帶/的字符串替換,將/tmp/ditagent/TF_B_PAYLOG_D.csv替換成/vdata/datapre/281/'"$filename"'
4.?sed -i 's/^/beginstring/g' *.txt
---在所有行首添加字符串;
5.??sed -i 's/$/endstring/g' *.txt
---在所有行末添加字符串
6. sed -i '2s/原字符串/替換字符串/g' *.txt
---替換第2行
7. sed -i?'$s/原字符串/替換字符串/g'?*.txt
---替換最后一行
8. sed?-i? '2,5s/原字符串/替換字符串/g'?*.txt
---替換2到5行
9. sed -i? '2,$s/原字符串/替換字符串/g'?*.txt
---替換2到最后一行
10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 testutf8.dat
---把test.dat中的歐元符號替換成豎線,再將文件gbk格式轉(zhuǎn)成utf8
-i選項(xiàng)是直接在文件中替換,不在終端輸出;
-r選項(xiàng)是所給的path中的目錄遞歸查找;
-l選項(xiàng)是輸出所有匹配到oldstring的文件;
s/表示替換
/g表示全局替換