Linux中替換文件中的某個(gè)字符串的常用命令詳解
如果你想在 Linux 中替換文件中的某個(gè)字符串,可以使用以下命令:
1. 基本替換(sed 命令)
sed -i 's/原字符串/新字符串/g' 文件名
示例:將 file.txt
中所有的 old_text
替換成 new_text
sed -i 's/old_text/new_text/g' file.txt
選項(xiàng)說明:
-i
:直接修改文件(不加-i
則只輸出到終端,不修改文件)。s/
:表示替換(substitute)。g
:全局替換(否則每行只替換第一個(gè)匹配項(xiàng))。
2. 替換時(shí)忽略大小寫(sed + I 選項(xiàng))
sed -i 's/原字符串/新字符串/gI' 文件名
示例:替換 hello
為 hi
,并忽略大小寫(Hello
、HELLO
也會(huì)被替換)
sed -i 's/hello/hi/gI' file.txt
3. 替換時(shí)使用變量(避免特殊字符沖突)
如果替換的內(nèi)容包含 /
或其他特殊字符,可以改用 |
或 #
作為分隔符:
sed -i "s|原字符串|$變量名|g" 文件名
示例:用變量 $new_ip
替換文件中的 192.168.1.1
new_ip="10.0.0.1" sed -i "s|192.168.1.1|$new_ip|g" config.txt
4. 替換指定行(sed 限定行號(hào))
sed -i '行號(hào)s/原字符串/新字符串/' 文件名
示例:僅在第 5 行替換 foo
為 bar
sed -i '5s/foo/bar/' file.txt
5. 替換前備份原文件(sed -i.bak)
sed -i.bak 's/old/new/g' file.txt
這會(huì)生成 file.txt.bak
備份文件,再修改 file.txt
。
6. 使用 awk 替換
awk '{gsub(/原字符串/, "新字符串"); print}' 原文件 > 新文件
示例:替換 data.txt
中的 apple
為 orange
,并保存到 new_data.txt
awk '{gsub(/apple/, "orange"); print}' data.txt > new_data.txt
7. 使用 perl 替換
perl -pi -e 's/原字符串/新字符串/g' 文件名
示例:替換 error
為 warning
perl -pi -e 's/error/warning/g' log.txt
8. 替換多個(gè)文件(find + sed)
find /路徑 -type f -name "*.txt" -exec sed -i 's/old/new/g' {} \;
示例:替換 /etc/nginx/
目錄下所有 .conf
文件中的 example.com
為 mysite.com
find /etc/nginx/ -type f -name "*.conf" -exec sed -i 's/example.com/mysite.com/g' {} \;
9. 交互式替換(vim 命令)
vim 文件名 :%s/原字符串/新字符串/g :wq
示例:在 vim
中替換 cat
為 dog
vim animals.txt :%s/cat/dog/g :wq
總結(jié)
需求 | 命令 |
---|---|
基本替換 | sed -i 's/old/new/g' file |
忽略大小寫 | sed -i 's/old/new/gI' file |
使用變量 | `sed -i "s |
替換指定行 | sed -i '5s/old/new/' file |
備份原文件 | sed -i.bak 's/old/new/g' file |
多文件替換 | find /path -name "*.ext" -exec sed -i 's/old/new/g' {} \; |
以上就是Linux中替換文件中的某個(gè)字符串的常用命令詳解的詳細(xì)內(nèi)容,更多關(guān)于Linux替換文件字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Shell腳本四則運(yùn)算符號(hào)實(shí)用的技巧和注意事項(xiàng)
這篇文章主要介紹了Shell腳本四則運(yùn)算符號(hào)實(shí)用的技巧和注意事項(xiàng),文中通過示例代碼介紹了基本的算術(shù)運(yùn)算符號(hào)(加、減、乘、除)、浮點(diǎn)數(shù)運(yùn)算(使用bc命令),以及自增、自減和復(fù)合賦值運(yùn)算符的使用技巧,需要的朋友可以參考下2025-04-04linux下自動(dòng)備份MySQL數(shù)據(jù)并上傳到FTP上的shell腳本
linux下自動(dòng)備份MySQL數(shù)據(jù)并上傳到FTP上的shell腳本,需要的朋友可以參考下2013-01-01Linux中執(zhí)行shell腳本的4種方法總結(jié)
這篇文章主要介紹了Linux中執(zhí)行shell腳本的4種方法總結(jié),即在Linux中運(yùn)行shell腳本的4種方法,需要的朋友可以參考下2014-08-08Shell腳本實(shí)現(xiàn)獲取網(wǎng)頁快照并生成縮略圖
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)獲取網(wǎng)頁快照并生成縮略圖,本文獲取網(wǎng)頁快照使用phantomjs、生成縮略圖使用ImageMagick,需要的朋友可以參考下2015-02-02Shell腳本中$符號(hào)的嵌套使用方法小結(jié)
在編寫Shell腳本時(shí),通過嵌套使用$符號(hào),間接獲取變量或表達(dá)式的值的具體方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-05-05