一)通過vi編輯器來替換。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),西吉網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西吉等地區(qū)。西吉做網(wǎng)站價(jià)格咨詢:18982081108
vi/vim 中可以使用 :s 命令來替換字符串。
:s/well/good/ 替換當(dāng)前行第一個(gè) well 為 good
:s/well/good/g 替換當(dāng)前行所有 well 為 good
:n,$s/well/good/ 替換第 n 行開始到最后一行中每一行的第一個(gè) well 為 good
:n,$s/well/good/g 替換第 n 行開始到最后一行中每一行所有 well 為 good
n 為數(shù)字,若 n 為 .,表示從當(dāng)前行開始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替換每一行的第一個(gè) well 為 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替換每一行中所有 well 為 good
可以使用 # 作為分隔符,此時(shí)中間出現(xiàn)的 / 不會(huì)作為分隔符
:s#well/#good/# 替換當(dāng)前行第一個(gè) well/ 為 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin
(二)直接替換文件中的字符串。(此法不用打開文件即可替換字符串,而且可以批量替磨春換多個(gè)文件。)
1.perl命令替換,參數(shù)含義如下:
-a??? 自動(dòng)分隔模式,用空格分隔$_并保存到@F中。相當(dāng)于@F = split ”。分隔符可以使用-F參數(shù)指定
-F??? 指定-a的分隔符,可以使用正則表達(dá)式
-e??? 執(zhí)行指定的腳本。
-i擴(kuò)展名?? 原地替換文件,并將舊文件用指定的擴(kuò)展名備份。不指定擴(kuò)展名則不備份。
-l?埋沖?? 對(duì)輸入內(nèi)容自動(dòng)chomp,對(duì)輸出內(nèi)容自動(dòng)添加換行
-n??? 自動(dòng)循環(huán),相當(dāng)于 while() { 腳本; }
-p??? 自動(dòng)循環(huán)+自動(dòng)輸出,相當(dāng)于 while() { 腳本; print; }
用法瞎液耐示例:
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
將當(dāng)前文件夾下lishan.txt和lishan.txt.bak中的“shan”都替換為“hua”
perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2
將每個(gè)文件中出現(xiàn)的數(shù)值都加一
2.sed命令下批量替換文件內(nèi)容?
格式: sed -i "s/查找字段/替換字段/g" `grep 查找字段 -rl 路徑` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
s表示替換,d表示刪除
示例:sed -i "s/shan/hua/g"? lishan.txt
把當(dāng)前目錄下lishan.txt里的shan都替換為hua? ? ? ?各個(gè)Linux詳細(xì)命令介紹及應(yīng)用可如下進(jìn)行查找
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中的歐元符號(hào)替換成豎線,再將文件gbk格式轉(zhuǎn)成utf8
-i選項(xiàng)是直接在文件中替換,不在終端輸出;
-r選項(xiàng)是所給的path中的目錄遞歸查找;
-l選項(xiàng)是輸出所猛租蘆有匹配到oldstring的文件;
s/表示替換
/枝帶g表示全局替換
文章標(biāo)題:linux命令替換 linux命令替換文件內(nèi)容
本文鏈接:http://chinadenli.net/article27/dspgejj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、網(wǎng)站營(yíng)銷、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)