【发布时间】:2018-11-12 06:30:55
【问题描述】:
我正在尝试使用正则表达式来重命名这篇文章之后的几个文件
Renaming files using regular expressions - Linux
有我的文件-
abcd_some_random_alphanumeric_1.pdf
abcd_some_random_alphanumeric_2.pdf
abcd_some_random_alphanumeric_3.pdf
abcd_some_random_alphanumeric_4.pdf
abcd_some_random_alphanumeric_5.pdf
我想将文件重命名为
abcd_1.pdf
abcd_2.pdf
abcd_3.pdf
abcd_4.pdf
abcd_5.pdf
我正在尝试以下方法
rename 's/abcd_.*_(/d+).pdf/abcd_${1}.pdf/' *.pdf
但我得到了很多错误 -
Unknown regexp modifier "/a" at (user-supplied code), near ""
Unknown regexp modifier "/b" at (user-supplied code), near "{
#line 1
"
Unknown regexp modifier "/c" at (user-supplied code), near "{
#line 1
...........
"
但是,我最终想要 _1、_2、_3 等。我不知道如何使用正则表达式从原始字符串中捕获数据并将捕获的组放入替换部分。
【问题讨论】:
-
那里有一个警告,用粗体字表示:“还有其他同名的工具可能会也可能不会,所以要小心。”确实, man7.org/linux/man-pages/man1/rename.1.html 显示了一个完全不同的实用程序。检查你的手册页/帮助文本。
标签: regex