regex - 文件重命名正则表达式添加不需要的后缀

标签 regex linux rename

我对 rename -v 's/\.jpg$/\_120x120.jpg/' *.jpg 有问题

zzr31_120x120.jpg 重命名为 zzr31_120x120_120x120.jpg

我怎样才能更清楚地表明它只会重命名那些没有 120х120 的名称? 最重要的是,如果可能的话,在一个命令中不仅要制作 jpg,还要制作 gifpng

最佳答案

你需要使用 negative lookahead并使用正则表达式匹配您选择的扩展名,使重命名只考虑每个文件 *

无论如何,这是我的建议

rename -n 's/^((?:(?!_120x120).)*)\.(jpg|png|gif)$/$1_120x120.$2/' *

删除 -n 以使其正常运行,否则它只会显示将重命名的内容而不会实际重命名

关于regex - 文件重命名正则表达式添加不需要的后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841781/

相关文章:

javascript - Highcharts:如何重命名系列

正则表达式:顺序很重要?

Java 正则表达式在 Android 上的工作方式与在 Java 上的工作方式不同

python - regEx:匹配两组字符

linux - Perl 正则表达式递归替换多个文件组中的字符串,如 "*.php" "*.html"

PHP runkit_function_rename 不起作用?

compiler-errors - 在android studio中重命名包后Android应用程序无法启动

java - 如何使这个正则表达式为负?

c - 如何检查消息是否为空

Linux Lubuntu Eclipse Checkstyle SWT 错误