linux的替換指令:1、利用vim中「:s/原內容/取代內容/」指令來取代內容;2、利用sed配合grep取代內容;3、利用「find -name 檔名| xargs perl -pi -e 's|原內容|取代內容|g'”指令取代內容。
本教學操作環境:linux7.3系統、Dell G3電腦。
1、透過vim編輯器來取代
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
2、sed和grep配合
sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
作用:將目前目錄(包含子目錄)中所有txt檔案中的yyyy字串替換為xxxx字串。其中,
-i 表示操作的是文件,``括起來的grep指令,表示grep指令的的結果當作操作文件。
s/yyyy/xxxx/表示找出yyyy並替換為xxxx,後面跟g表示一行中有多個yyyy的時候,都替換,而不是只替換第一個
另外,如果不需要尋找子目錄,只需要在目前目錄替換,用sed指令就行了,指令如下:sed -i s/xxxx/yyyy/g ./*.txt
3.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'
相關推薦:《Linux影片教學》
以上是linux替換指令是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!