regex - 如何使用 sed 命令切换案例?
问题描述
我想在文件中替换kAbcdedf
为abcdef
。我尝试使用 sed 命令。一些建议说,如果我输入这个命令
echo 'abc'|sed 's/^../\u&/'
结果将是
Abc
但在 macOS(使用 zsh)上,结果是
uabc
有谁知道使用 sed 命令切换案例的正确方法?
如何搜索kAbcd
然后用 替换该字符串abcd
,即删除k
后面的下一个字母并将其大写k
?
解决方案
$ # with GNU sed
$ echo 'kAbcd' | sed -E 's/k(.)/\l\1/'
abcd
$ # with perl if GNU sed is not available
$ echo 'kAbcd' | perl -pe 's/k(.)/\l$1/'
abcd
\l
将小写给定参数的第一个字符- 使用
g
修饰符替换一行中的所有此类事件
正如 Wiktor Stribiżew 在评论中提到的,另请参阅:如何在 Mac OS X 上使用 GNU sed
推荐阅读
- javascript - 访问令牌 Instagram 过期后如何刷新它?
- java - 如何使用地图和过滤器获取嵌套过滤列表?
- django - 从 S3 存储桶提供的 Django 静态文件出现 ERR_CERT_COMMON_NAME_INVALID 和 SSL_ERROR_BAD_CERT_DOMAIN 错误
- xslt-2.0 - 在循环应用 partNumber XSLT 时遇到困难,如下所示
- c# - 在 Asp.Net MVC 控制器中读取 Axios 获取参数
- python-3.x - 如何使我的函数适用于任何数字?
- qt - 为什么我的 Qt 应用忽略了 applicationDisplayName 的设置?
- node.js - Spring Boot 和 Angular:JSON 解析错误:无法将 java.util.HashSet 的实例反序列化出 VALUE_STRING 令牌
- java - 坚持对 DP 算法进行轻微调整(考虑决胜局)
- php - Apache 2.4 + PHP 7.2 prefork mpm + 文件上传导致 20 秒后部分上传错误