linux中批量替換文字中字串

2021-08-27 10:56:37 字數 2121 閱讀 5139

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

vi/vim 中可以使用 :s 命令來替換字串。

:s/well/good/ 替換當前行第乙個 well 為 good

:s/well/good/g 替換當前行所有 well 為 good

:n,$s/well/good/ 替換第 n 行開始到最後一行中每一行的第乙個 well 為 good

:n,$s/well/good/g 替換第 n 行開始到最後一行中每一行所有 well 為 good

n 為數字,若 n 為 .,表示從當前行開始到最後一行

:%s/well/good/(等同於 :g/well/s//good/) 替換每一行的第乙個 well 為 good

:%s/well/good/g(等同於 :g/well/s//good/g) 替換每一行中所有 well 為 good

可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#well/#good/# 替換當前行第乙個 well/ 為 good/

:%s#/usr/bin#/bin#g 可以把檔案中所有路徑/usr/bin換成/bin

(二)直接替換檔案中的字串。(此法不用開啟檔案即可替換字串,而且可以批量替換多個檔案。)

1.perl命令替換,引數含義如下:

-a    自動分隔模式,用空格分隔$_並儲存到@f中。相當於@f = split 」。分隔符可以使用-f引數指定

-f    指定-a的分隔符,可以使用正規表示式

-e    執行指定的指令碼。

-i《副檔名》   原地替換檔案,並將舊檔案用指定的副檔名備份。不指定副檔名則不備份。

-l    對輸入內容自動chomp,對輸出內容自動新增換行

-n    自動迴圈,相當於 while(<>)

-p    自動迴圈+自動輸出,相當於 while(<>)

用法示例:

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 

將當前資料夾下lishan.txt和lishan.txt.bak中的「shan」都替換為「hua」

perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2 

將每個檔案中出現的數值都加一

2.sed命令下批量替換檔案內容   

格式: sed -i "s/查詢字段/替換字段/g" `grep 查詢字段 -rl 路徑` 檔名

-i 表示inplace edit,就地修改檔案

-r 表示搜尋子目錄

-l 表示輸出匹配的檔名

s表示替換,d表示刪除

示例:sed -i "s/shan/hua/g"  lishan.txt

把當前目錄下lishan.txt裡的shan都替換為hua

sed的其他用法如下:

1、刪除行首空格

sed 's/^[ ]*//g' filename

sed 's/^ *//g' filename

sed 's/^[[:space:]]*//g' filename

2、行後和行前新增新行

行後:sed 's/pattern/&\n/g' filename

行前:sed 's/pattern/\n&/g' filename

&代表pattern

3、使用變數替換(使用雙引號)

sed -e "s/$var1/$var2/g" filename

4、在第一行前插入文字

sed -i '1 i\插入字串' filename

5、在最後一行插入

sed -i '$ a\插入字串' filename

6、在匹配行前插入

sed -i '/pattern/ i "插入字串"' filename

7、在匹配行後插入

sed -i '/pattern/ a "插入字串"' filename

8、刪除文字中空行和空格組成的行以及#號注釋的行

grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d

linux中批量替換文字中字串

一 通過vi編輯器來替換。vi vim 中可以使用 s 命令來替換字串。s well good 替換當前行第乙個 well 為 good s well good g 替換當前行所有 well 為 good n,s well good 替換第 n 行開始到最後一行中每一行的第乙個 well 為 goo...

linux中的文字的批量替換

1 檔案內全部替換 s abc 123 g 如檔案內有 可用 替換,s abc 123 g,如果替換或被替換內容中有 特別是路徑 可用 轉義 注 把abc替換成123 或者 s str1 str2 g 用str2替換檔案中所有的str1 2 檔案內區域性替換 20,30s abc 123 如檔案內有...

批處理中替換文字內容

fosjos 無聊的菜鳥程式設計師 信譽 100 2006 7 20 12 18 23 得分 0 首先 登錄檔新增乙個或兩個 reg dword 值 hkey local machine software microsoft command processor enableextensions 或 ...