You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sed在查找替换时保留原字符串的大小写格式?

使用sed实现保留原字符串大小写的替换操作

需求说明:将文本中所有foo(含任意大小写组合)替换为bar,同时严格保留原字符串的大小写格式,例如:

  • foo → bar
  • FoO → BaR
  • fOO → bAR
  • FOO → BAR

解决方案

由于foo的大小写组合共有8种,我们可以通过逐个匹配对应组合并替换的方式实现需求,这种方式直观且易于维护。

方法1:直接在命令行执行sed命令

sed -E '
s/FOO/BAR/g;
s/Foo/Bar/g;
s/fOO/bAR/g;
s/FoO/BaR/g;
s/fOo/bAr/g;
s/foO/baR/g;
s/FOo/BAr/g;
s/foo/bar/g
' input.txt

方法2:使用sed脚本文件

创建名为replace_case.sed的脚本文件,内容如下:

#!/usr/bin/sed -E

# 匹配所有大小写组合并对应替换
s/FOO/BAR/g
s/Foo/Bar/g
s/fOO/bAR/g
s/FoO/BaR/g
s/fOo/bAr/g
s/foO/baR/g
s/FOo/BAr/g
s/foo/bar/g

赋予脚本执行权限后运行:

chmod +x replace_case.sed
./replace_case.sed input.txt

效果验证

假设输入文本input.txt内容为:

foo
FoO
fOO
FOO
Hello foo World
Test FoO Example

执行替换后输出:

bar
BaR
bAR
BAR
Hello bar World
Test BaR Example

内容的提问来源于stack exchange,提问作者Anm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:48:24