使用sed全局替换

grep -rnl "main" ./* | xargs sed -i "s:main:M\&AIN:g" #全局查找main并替换成M&AIN,\为转义符

 

### 使用 `sed` 命令进行字符串替换 #### 单个文件内简单替换 对于简单的查找和替换操作,可以在单个文件中使用如下命令: ```bash sed 's/旧字符串/新字符串/' 文件名 ``` 此命令将在标准输出上显示被修改后的文件内容而不改变原文件[^1]。 为了直接编辑文件而不是仅查看更改效果,则需添加 `-i` 参数: ```bash sed -i 's/旧字符串/新字符串/g' 文件名 ``` 这里的 `/g` 表示全局替换,即在同一行中有多个匹配项时全部替换;如果不加 `/g` 只会替换单行第一次出现的情况[^4]。 #### 防止误替换 为了避免意外地替换到不应该被改动的地方,可以通过更精确的模式来限定范围。比如只在特定上下文中替换某个词组: ```bash sed '/目标环境/s/旧字符串/新字符串/' 文件名 ``` 这条指令意味着只有当某一行包含了 "目标环境" 这样的关键词时才会对该行里的 "旧字符串" 执行替换动作[^2]。 #### 多文件批量处理 针对整个目录下的所有文本文件做统一替换工作,可利用通配符配合递归选项实现多文件一次性更新: ```bash find . -type f -name "*.txt" | xargs sed -i 's/旧字符串/新字符串/g' ``` 上述脚本先通过 find 查找当前路径下所有的 `.txt` 类型文档再交给管道后面的 sed 来完成具体任务[^3]。 另外值得注意的是,在实际应用过程中建议总是带上`.bak`扩展名作为保险措施以防万一发生错误能够迅速恢复原始状态: ```bash sed -i.bak 's/旧字符串/新字符串/g' 文件名 ``` 这样不仅实现了即时生效还保留了一份副本用于回滚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值