【发布时间】:2014-07-09 19:56:51
【问题描述】:
我想重命名几个格式的文件
libabc-x86_64-gnu-linux.a
libasdfgh-x86-gnu-linux.a
全部格式
libabc.a
libasdfgh.a
使用 Bash。我已经编写了正则表达式 (libpj[^-]*).*,它应该将有趣的部分留在捕获组 1 中。所以我尝试使用 Bash 的参数替换:
for i in `ls *.a`; do mv "$i" "${i/(lib[^-]*).*/\1}"; done
但是 Bash 给出了很多形式的错误
mv: 'libabc-x86_64-gnu-linux.a' and 'libabc-x86_64-gnu-linux.a' are the same file
暗示正则表达式在某种程度上不匹配,尽管我已经确认它与几个实用程序一起使用,尤其是非常出色的RegExr。我究竟做错了什么? Bash 在捕获组方面有问题吗?
【问题讨论】: