重命名一些具有特定格式的文件

重命名一些具有特定格式的文件

我想重命名一些文件。我有很多这种格式的文件:?????.pdb.

该文件的名称由 5 个字符(数字和字母)组成,新名称将如下所示????_biounit?.pdb。旧名称的前 4 个字符必须保留,而第五个字符必须插入到单词“biounits”之后。

一些例子:

  • 原始文件:

    1b471.pdb 1caz4.pdb 1ca93.pdb
    
  • 新文件:

    1b47_biounit1.pdb 1caz_biounit4.pdb 1ca9_biounit3.pdb
    

我尝试使用 comand mv 来做到这一点,但我无法区分前四个字符和第五个字符。有人能帮助我吗?

答案1

使用 shell 循环:

for f in ?????.pdb; do mv "$f" "${f%?.pdb}_biounit${f#????}"; done
  • ${f%?.pdb}?.pdb从文件名末尾删除。
  • ${f#????}????从文件名的开头删除。

答案2

使用perl重命名工具:

rename -n 's/(....)(.)/$1_biounit$2/' ?????.pdb

-n如果您对输出满意,请删除。

相关内容