首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用重命名工具删除大写字母前的字符

使用重命名工具删除大写字母前的字符
EN

Stack Overflow用户
提问于 2019-10-23 18:36:17
回答 1查看 37关注 0票数 1

我在脚本中犯了一个错误,把所有的空格都换成了“s”而不是下划线。我想撤消此更改。我有这样的名字:

代码语言:javascript
复制
BatmansBegins
FightsClub
ThesDeparted
TouchsOfsEvil

我想把它命名为

代码语言:javascript
复制
Batman_Begins
Fight_Club
The_Departed
Touch_Of_Evil

我现在有这个命令,但它会替换's‘和后面的大写字母

代码语言:javascript
复制
rename -n 's/s[A-Z]/_/g'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-23 18:40:59

您需要捕获大写字母并在替换中使用反向引用。因此,请将其用作:

代码语言:javascript
复制
rename -n 's/s([A-Z])/_$1/g' *s[A-Z]*

另一种选择是在正则表达式中使用正向先行:

代码语言:javascript
复制
rename -n 's/s(?=[A-Z])/_/g' *s[A-Z]*

(?=[A-Z])是肯定的先行检查,它在匹配s之后断言是否存在大写字母。

PS:rename工具有相当多的变体,看起来您正在使用流行的基于perl的rename实用程序,这个答案也基于此。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58520939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档