首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在shell中递归regexp重命名?

如何在shell中递归regexp重命名?
EN

Stack Overflow用户
提问于 2014-01-02 20:43:51
回答 2查看 80关注 0票数 0

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

在Wordpress管理和前端,它们会被替换,这个文件的名称是abc-def.jpg,这样它们就变成了坏链接/源代码。

有什么方法可以用SSH将文件夹中的所有-或-s替换为单个字符?我在Ubuntu 12.04上。也欢迎在Wordpress核心上对此进行任何其他修复。尝试在/wp-include/formatting.php上注释这一行,但没有工作:

代码语言:javascript
运行
复制
$static_characters = array_merge( array( '---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)' ), $cockney );
EN

回答 2

Stack Overflow用户

发布于 2014-01-03 13:04:28

我在别的地方找到了这个地方,好像起作用了

代码语言:javascript
运行
复制
find . -depth -name '*foo*' -execdir bash -c 'mv -i "$1" "${1//foo/bar}"' bash {} \;

用作:

代码语言:javascript
运行
复制
find . -depth -name '*---*' -execdir bash -c 'mv -i "$1" "${1//---/-}"' bash {} \;

有趣的是,我意外地运行了第一个示例命令,并把所有的事情都搞砸了。幸运的是昨天得到了完整的图像备份。

票数 1
EN

Stack Overflow用户

发布于 2014-01-02 22:38:51

也许您可以在远程计算机中尝试使用bash命令将文件名中的多个破折号替换为单个破折号?

代码语言:javascript
运行
复制
for file in `ls *\-\-*`; do mv $file `echo $file | sed 's/\-\{1,5\}/\-/'`; done

此命令将最多5个连续破折号替换为单个破折号。

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

https://stackoverflow.com/questions/20891519

复制
相关文章

相似问题

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