linux查找替換
『壹』 鍦╨inux涓嬬殑VIM涓鏇挎崲鍛戒護鐨勬牸寮忔槸浠涔堬紵鍚勯儴鍒嗙殑鍚涔夋槸浠涔堬紵
鍦╨inux涓嬬殑VIM涓鏇挎崲鍛戒護鐨勬牸寮忔槸;[range]s/pattern/string/[c,e,g,i]
range:鎸囩殑鏄鑼冨洿
s(search):琛ㄧず鎼滅儲
pattern錛氬氨鏄瑕佽鏇挎崲鐨瀛楃︿覆
string錛氬皢鏇挎崲pattern
C錛氭瘡嬈℃浛鎹㈠墠璇㈤棶
g錛坓lobe錛:涓嶈㈤棶錛屽皢鍋氭暣琛屾浛鎹
e(error):涓嶆樉紺篹rror
i:(ignore)涓嶅垎澶у皬鍐
『貳』 總結linux替換字元串的幾種方法
一)通過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(<>) { 腳本; print; }
用法示例:
perl -p -i.bak -e 's/foo/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 各個Linux詳細命令介紹及應用可如下進行查找
『叄』 在red hat enter linux中用怎麼替換字元串
sed。在linux中可以利用sed命令來查找和替換文件中的字元串,該命令採用的是流編輯模式,可以根據正則表達式匹配和處理文本文件中的數據,替換語法為「sed」s/要搜索的字元串或正則表達式/替換值/g'要執行操作的文件名」。
『肆』 linux涓鎵歸噺鏌ユ壘鏇挎崲鏂囨湰鍐呭逛緥瀛
.鎵歸噺鏌ユ壘鏌愪釜鐩涓嬫枃浠剁殑鍖呭惈鐨勫唴瀹癸紝渚嬪傦細
# grep -rn "瑕佹壘鏌ユ壘鐨勬枃鏈" ./
2.鎵歸噺鏌ユ壘騫舵浛鎹㈡枃浠跺唴瀹廣
# sed -i "s/瑕佹壘鏌ユ壘鐨勬枃鏈/鏇挎崲鍚庣殑鏂囨湰/g" `grep -rl "瑕佹壘鏌ユ壘鐨勬枃鏈" ./`
sed鐨勫叾浠栫敤娉曞備笅錛
1銆佸垹闄よ岄栫┖鏍
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2銆佽屽悗鍜岃屽墠娣誨姞鏂拌
琛屽悗錛歴ed 's/pattern//n/g' filename
琛屽墠錛歴ed 's/pattern//n/g' filename
浠h〃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
find鍛戒護
find -name '瑕佹煡鎵劇殑鏂囦歡鍚' | xargs perl -pi -e 's|琚鏇挎崲鐨勫瓧絎︿覆|鏇挎崲鍚庣殑瀛楃︿覆|g'
#鏌ユ壘鏇挎崲褰撳墠鐩褰曚笅鍖呭惈瀛楃︿覆騫惰繘琛屾浛鎹
find -name '*.txt' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#閫掑綊鏌ユ壘鏇挎崲
find . -type f -name '*.html' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#鎼滅儲鐩褰昄OG鍖呭惈鏄劇ず鍑烘潵
find ./ -name '*log*' -type d
find ./ -name '*Log*' -type d more
褰撶劧榪樺彲浠ュ埄鐢 linux vim 鎵歸噺鏇挎崲
鍙瀵瑰綋鍓嶈岃繘琛屾浛鎹錛
Example
:s/XXX/YYY/g
,濡傛灉闇瑕佽繘琛屽叏閮ㄦ浛鎹錛
Example
:%s/XXX/YYY/g
濡傛灉闇瑕佸規寚瀹氶儴鍒嗚繘琛屾浛鎹,鍙浠ョ敤V榪涘叆visual妯″紡,鍐嶈繘琛
Example
:s/XXX/YYY/g
鎴栬呭彲浠ユ寚瀹氳屾暟瀵規寚瀹氳寖鍥磋繘琛屾浛鎹:
Example
:10,31s/XXX/YYY/g
鑻ラ渶瑕佹樉紺鴻屽彿錛屽湪vim涓
Example
:set nu
鍙栨秷鏄劇ず琛屽彿錛
Example
:set nonu
: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