我有一个名为“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命令作为
rename -v -n /*_*_/abi/ *.fsa
但发现错误如
Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE _*_/ at (eval 1) line 1.
请建议我在哪里做错了或建议使用命令/脚本/代码将所有字符砍成第二个下划线并在每个文件名中加上abi
作为后缀。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用cut
进行for循环以获取所需的部分:
for i in `ls ABI-Data/`; do j=`echo $i|cut -d "_" -f 3-` ; mv ABI-Data/$i ABI-Data/abi_$j ; done
或rename
:
rename -v s/[^_]*_[^_]*_/abi_/ *.fsa