【Linux系列】Linux 中替换文件中的字符串

csdn

方法一:使用 sed 命令 (推荐用于脚本和快速替换)

sed (Stream Editor) 是专门为解析和转换文本而设计的命令行工具,非常适合批量替换。
在这里插入图片描述

1. 基本语法(替换单个文件)
sed -i 's/原字符串/新字符串/g' 文件名
  • -i最重要的选项,代表“就地(in-place)”编辑。没有它,sed 只会将结果打印到屏幕,而不会修改原文件。使用 -i 一定要先备份或确认命令无误!
  • s:表示替换操作(substitute)。
  • /:是分隔符,也可以用其他字符,如 #|,当原字符串或新字符串中包含 / 时特别有用。(例如:sed -i 's#/old/path#/new/path#g' file.txt
  • g:表示全局替换(global)。如果没有 g,则只替换每行中第一个匹配的字符串。
2. 常用示例
  • file.txt 中所有的 foo 替换为 bar

    sed -i 's/foo/bar/g' file.txt
    
  • 只替换每行第一个匹配的 foo(去掉 g 选项):

    sed -i 's/foo/bar/' file.txt
    
  • 删除所有空行(将空行替换为空):

    sed -i '/^$/d' file.txt
    # 注意:这里使用了删除命令 `d`,而不是替换 `s`
    
  • 替换包含特殊字符的字符串(如路径),使用不同的分隔符:

    sed -i 's#/home/user#/data/user#g' file.txt
    
  • **安全做法:先测试,再替换(不加 -i 先看效果)**

    sed 's/foo/bar/g' file.txt  # 只输出到屏幕,原文件不变
    # 确认输出无误后,再运行带 -i 的命令
    sed -i 's/foo/bar/g' file.txt
    
  • 备份原文件后再替换(给 -i 添加扩展名,如 .bak

    sed -i.bak 's/foo/bar/g' file.txt
    

    这会将原文件备份为 file.txt.bak,并修改 file.txt


方法二:使用 vim 编辑器 (推荐用于交互式复杂编辑)

如果你需要更复杂的编辑,或者想一边查看一边确认,vim 是完美的选择。

1. 基本替换语法(在 vim 内)

打开文件后,在命令模式下输入:

:%s/原字符串/新字符串/g
  • ::进入命令行模式。
  • %:表示范围是整个文件(% 代表所有行)。也可以指定行范围,如 :10,20s/foo/bar/g 只替换第 10 到 20 行。
  • s:替换操作。
  • g:全局替换。
2. 常用示例与技巧
  • 替换前逐个确认非常安全!
    在命令后添加 c (confirm):

    :%s/foo/bar/gc
    

    Vim 会为每个匹配项提示你:

    • y: 替换 (yes)
    • n: 不替换 (no)
    • a: 替换所有 (all)
    • q: 退出 (quit)
    • l: 替换当前一个然后退出 (last)
  • 忽略大小写

    :%s/foo/bar/gi
    # 添加 `i` (ignore case) 选项,会匹配 FOO, Foo, fOO 等
    
  • 替换时要求整词匹配(避免替换 football 中的 foo):

    :%s/\<foo\>/bar/g
    # \< 和 \> 分别代表单词的开头和结尾
    

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

檀越@新空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值