重命名包含 BASIC 的动态生成文件

重命名包含 BASIC 的动态生成文件

我如何使用 mv shell 命令的重命名来重命名一个我不知道 exaxt 名称但始终包含单词 BASIC 的文件

rename Ex2WebR1_0WEBSHOP01_005443_B_BASIC.XML BASIC.XML

我尝试过类似的方法但不起作用

mv 's/.*_BASIC/BASIC/g' BASIC.*

感谢您的帮助

答案1

假设当前目录中只有一个这样的文件,简单地说:

mv -- *_BASIC.XML BASIC.XML

请永远不要解析输出

答案2

您的正则表达式尝试正朝着有效的方向前进,如果您使用以下命令,则应该进行微小的更改rename

rename 's/.*_BASIC/BASIC/g' *_BASIC*

这假设您的发行版安装了兼容版本rename(根据我的经验,Red Hat 和相关发行版通常没有)。

还假设您没有多个具有相同扩展名的匹配文件,这样可能会导致名称冲突。

如果您有多个具有不同扩展名的匹配文件并且您想在一次操作中重命名,则此变体将非常有用,否则您最好坚持使用https://unix.stackexchange.com/a/590037/40482

相关内容