如何使用sed命令替换文件指定行中单引号之间的文本
替换指定行单引号内文本的终端命令方案
sed 实现(最常用)
你可以直接用以下sed命令完成需求,仅修改Home = 开头行的单引号包裹内容,不会影响其他行的内容:
1. 输出修改后的内容(不修改原文件,可先验证效果)
sed "/^Home = / s/'[^']*'/'147 East Avenue'/" Address.txt
2. 原地修改原文件
- Linux 平台:
sed -i "/^Home = / s/'[^']*'/'147 East Avenue'/" Address.txt
- macOS 平台:
sed -i '' "/^Home = / s/'[^']*'/'147 East Avenue'/" Address.txt
命令说明
- 开头的
/^Home = /是行匹配规则,仅处理以Home =开头的行,不会修改Initial、Work等其他行的单引号内容 - 替换规则
s/'[^']*'/'你要替换的新内容'/中,'[^']*'会匹配第一个单引号到下一个单引号之间的所有内容(无论中间是空、有特殊字符还是普通文本都可完整匹配),你只需要把示例中的147 East Avenue换成你需要的目标内容即可。
内容的提问来源于stack exchange,提问作者nodymoha
相关产品推荐
相关产品推荐

