首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何递归正则表达式重命名双破折号

如何递归正则表达式重命名双破折号
EN

Ask Ubuntu用户
提问于 2014-01-02 21:50:01
回答 2查看 353关注 0票数 1

我正在使用Wordpress Eazyest画廊创建2000画廊。有些文件的文件名中有双或三重破折号。例如:abc-def.jpg这些文件是通过FTP上传的。

在Wordpress管理和前端HTML中,它们被替换,这个文件的名称是abc-def.jpg,因此它们变成了坏链接/src。

有没有办法用SSH替换文件夹中的所有--“S”或“S”?我在Ubuntu 12.04上。

EN

回答 2

Ask Ubuntu用户

发布于 2014-01-02 22:34:33

要在单个目录中匹配/更改该模式,它应该非常简单

代码语言:javascript
运行
复制
rename -- 's/-+/-/' *.jpg

(用单个破折号替换一个或多个连续破折号),但首先通过添加-n和-v标志进行试运行。

代码语言:javascript
运行
复制
rename -nv -- 's/-+/-/' *.jpg

如果一个名称中有多个破折号实例(例如abc-def-ghi.jpg),则需要添加一个g (全局)交换机。

代码语言:javascript
运行
复制
rename -- 's/-+/-/g' *.jpg

如果您需要递归地更改图库子目录中的名称,则可以将rename命令作为exec操作使用为find命令。

代码语言:javascript
运行
复制
find /path/to/dir -name '*.jpg' -exec rename -nv -- 's/-+/-/g' {} +

或者,如果您的远程shell支持globstar shell选项,则可以尝试通过使用**/*.jpg之类的glob使rename命令自动执行。

票数 2
EN

Ask Ubuntu用户

发布于 2014-01-02 22:32:30

  1. ssh进入您安装Wordpress的Ubuntu;
  2. cd进入主目录,包含所有的图库;
  3. 运行find -iname '*--*' -exec sh -c 'mv "{}" "$(echo {} | tr -s '-')"' \;
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/399147

复制
相关文章

相似问题

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