在 CentOS(以及其它 Linux 发行版)中,常用的替换文本字符的命令有下面几种:
sed(最常用,适合替换文件/管道内容)替换文件中的文本(不直接修改原文件)
sed 's/旧字符/新字符/' 文件名
直接修改文件(加 -i)
sed -i 's/旧字符/新字符/' 文件名
全局替换(一行中所有匹配)
sed -i 's/旧字符/新字符/g' 文件名
示例:
sed -i 's/localhost/127.0.0.1/g' test.txt
tr(替换单个字符,不修改文件)cat 文件名 | tr '旧字符' '新字符'
示例:
cat test.txt | tr 'a' 'A'
⚠️ tr 只能替换字符,不能替换字符串。
awk(适合复杂文本处理)awk '{gsub(/旧字符/,"新字符"); print}' 文件名
示例:
awk '{gsub(/foo/,"bar"); print}' test.txt
vim(交互式替换)vim 文件名
进入后输入:
:%s/旧字符/新字符/g
perl(强大,支持正则)perl -pi -e 's/旧字符/新字符/g' 文件名
| 场景 | 推荐命令 |
|---|---|
| 批量替换文件内容 | sed -i |
| 管道中替换 | sed / tr |
| 复杂逻辑 | awk / perl |
| 手动编辑 | vim |
如果你有具体替换示例(如替换 IP、端口、配置项),我可以给你精确命令。