goo*_*cow 5 shell shell-script rename
我需要批量重命名文件——我浏览的其他问题并不能完全解决我的问题。我的文件的名称是不确定生成的,因此我无法预测它们将被命名为什么。我知道他们将以 . 开头NORMAL
和结尾-lib*
。我想用一些 string 替换它们之间的所有内容X
。例如,
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib1.concordant
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib1.deletion
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib1.divergent
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib1.inversion
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib1.translocation
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.concordant
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.deletion
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.divergent
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.insertion
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.inversion
| | |-- NORMAL_H_LS-A7-A0CE-10A-01D-A017-09-lib4.translocation
Run Code Online (Sandbox Code Playgroud)
所以它可能是这种形式rename "s/something/X/"
,但我不知道那应该是什么,因为我不知道如何使用正则表达式。
如果您足够幸运,可以使用rename
,那么以下内容就足够了:
rename 's/(NORMAL).*(-lib)/$1X$2/' *
Run Code Online (Sandbox Code Playgroud)