![让 sed 将小写输入转换为大写和小写](https://linux22.com/image/1436662/%E8%AE%A9%20sed%20%E5%B0%86%E5%B0%8F%E5%86%99%E8%BE%93%E5%85%A5%E8%BD%AC%E6%8D%A2%E4%B8%BA%E5%A4%A7%E5%86%99%E5%92%8C%E5%B0%8F%E5%86%99.png)
我有变量from="abc"
和to="xyz"
定义小写字符串。
我如何使用sed
它来替换from
,to
但匹配大小写。
那是echo "abc def ABC DEF" | <sedcommand>
应该生产xyz def XYZ DEF
。
答案1
以下是 sed 和 bash 参数扩展的组合:
$ from="abc" to="xyz"
$ echo "abc def ABC DEF" | sed "s/$from/$to/g; s/$from/${to^^}/Ig"
xyz def XYZ DEF
第一个s///
替换所有小写字母,第二个替换所有混合大小写字母,并将其替换为大写字母 - 将替换Abc
为XYZ