1

我有一个名为“ABI-Data”的目录,其中包含如下文件

10_2012-08-22_B02_014.fsa
1_2012-08-22_A01_015.fsa
11_2012-08-22_C02_012.fsa
12_2012-08-22_D02_010.fsa
14_2012-08-22_F02_006.fsa

我需要像这样的输出

abi_B02_014.fsa
abi_A01_015.fsa
abi_C02_012.fsa
abi_D02_010.fsa
abi_F02_006.fsa

简而言之,我想用字符“abi”或任何东西将所有文件重命名为分数下的第二个。

我尝试在工作目录中使用重命名命令ABI-Data

rename -v -n /*_*_/abi/ *.fsa

但发现错误如

Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE _*_/ at (eval 1) line 1.

请建议我在哪里做错了,或者建议我命令/脚本/代码将所有字符截断到第二个下划线并abi在每个文件名中添加后缀。

4

2 回答 2

1

我通常使用这个:ReNamer - http://www.den4b.com/?x=screenshots&product=renamer

重命名函数列表

通常它可以完成工作,那里有复杂的正则表达式解决方案。

于 2012-12-11T09:14:25.670 回答
1

You can do a for loop with cut for getting the part you want :

for i in `ls ABI-Data/`; do j=`echo $i|cut -d "_" -f 3-` ; mv ABI-Data/$i ABI-Data/abi_$j ; done 

Or with rename :

rename -v  s/[^_]*_[^_]*_/abi_/ *.fsa 
于 2012-12-11T09:24:03.873 回答