【问题标题】:renaming after 2nd underscore using rename command使用重命名命令在第二个下划线后重命名
【发布时间】:2012-11-28 19:28:09
【问题描述】:

我有一个名为“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 as 中使用重命名命令

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

但发现类似的错误

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

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

【问题讨论】:

    标签: bash renaming


    【解决方案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 
    

    【讨论】:

    • 我认为我把 ' 误认为是 `
    • 现在重命名命令非常符合我的预期结果。感谢您的友好建议
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,这是另一种用户友好的重命名方式。这是一个很好的批量重命名程序。
    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 2016-05-29
    • 2019-09-30
    • 2011-07-15
    • 2019-09-02
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    相关资源
    最近更新 更多