使用正则表达式重命名多个文件夹

SDXCPTDR

如标题所述,我正在寻找一个命令/工具-最好是从终端运行的东西(我在远程服务器上使用Ubuntu),它可以一次替换多个目录的特定部分。文件夹结构如下:

Example.of.Structure[app]

Another.Example[app]

Third.Example.of.Structure[app]

我想重命名所有文件夹,以便[app]部分从文件夹名称中删除。

我已经尝试过使用基本RegEx。匹配方括号及其中的文本。

当我将其用于“查找”时,这似乎很好用,但是我真的不确定如何将其放入命令中。

我想出的用于查找括号内文本的正则表达式(包括括号本身)为: \[\w+\]

但是,如何将其放入命令中?

谢谢。

钢铁司机

您实际上并不需要正则表达式。一个简单的shell glob加参数扩展即可:

$ for f in *\[*\]/; do echo mv "${f}" "${f/\[*\]}"; done
mv Another.Example[app]/ Another.Example/
mv Example.of.Structure[app]/ Example.of.Structure/
mv Third.Example.of.Structure[app]/ Third.Example.of.Structure/

echo一旦您对建议的替换方法是正确的感到满意,请删除)。

如果要使用基于正则表达式的工具,那么基于perl的rename/prename选择是显而易见的选择:

$ rename -n 's/\[\w+\]//' */
rename(Another.Example[app]/, Another.Example/)
rename(Example.of.Structure[app]/, Example.of.Structure/)
rename(Third.Example.of.Structure[app]/, Third.Example.of.Structure/)

-n一旦您对建议的替换方法是正确的感到满意,请删除)。

这两个都与模式首次出现相匹配如果该[app]模式可能出现在其他位置,请查看将匹配项锚定到该模式的末尾。请参见字符串开始和字符串锚定结尾

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python 使用正则表达式重命名文件

使用正则表达式重命名文件

使用正则表达式重命名文件-Linux

使用正则表达式重命名文件

如何使用正则表达式量词使用zmv重命名多个文件?

使用正则表达式返回具有特定命名约定的文件夹

使用正则表达式重命名文件时,Perl重命名会挂起

改进正则表达式以重命名文件

bash:基于正则表达式重命名文件

正则表达式用文件重命名

使用bash脚本使用正则表达式重命名多个filex

使用正则表达式重命名列标题

使用正则表达式批量重命名电影

使用正则表达式“重命名”的问题(Linux)

使用正则表达式重命名多列

pandas 使用正则表达式模式重命名多个列

使用正则表达式从带有R的文件夹中读取多个csv文件

正则表达式将文件夹从“ dd.mm.yy”重命名为“ yy.mm.dd”?

文件夹路径的正则表达式

使用正则表达式批量重命名文件不起作用

使用bash重命名带有空格和正则表达式的文件

使用正则表达式在for循环中重命名bash中的文件

如何在Linux中使用正则表达式捕获组重命名文件?

使用“重命名”和正则表达式编辑文件名

使用正则表达式重命名文件(Linux命令行)

使用正则表达式重命名文件(Linux 命令行)

批处理文件重命名:使用正则表达式的填充时间为零?

如何使用正则表达式批量重命名文件

如何使用正则表达式重命名Powershell中的文件?