Linux

使用循環重命名多個文件

  • April 16, 2020

我需要使用循環重命名一些文件,但我無法讓它工作,因為我在 Linux 上還是個新手。需要重命名的文件有:

E9-GOWN33_multiplemap.bin.10.fa  
E9-GOWN33_multiplemap.bin.16.fa  
E9-GOWN33_multiplemap.bin.21.fa  
E9-GOWN33_multiplemap.bin.7.fa

改為更短的名稱,例如:

E9.bin.10.fa
E9.bin.16.fa
E9.bin.21.fa
E9.bin.7.fa

我已經使用了renameandmv和其他我線上程中看到的循環,但仍然無法讓它工作。非常感謝任何輸入!謝謝你!

如果你有 perl rename(在 Ubuntu、Debian 和許多其他系統上預設),你可以這樣做

rename -n 's/-GOWN33_multiplemap//' *fa

如果這為您提供了正確的文件名,請在沒有-n實際重命名它們的情況下執行:

rename 's/-GOWN33_multiplemap//' *fa

你可以試試這個:

for f in *.fa; do 
 echo mv "$f" "${f%-*}.${f#*.}"
done

結果:

E9.bin.10.fa
E9.bin.16.fa
E9.bin.21.fa
E9.bin.7.fa

引用自:https://unix.stackexchange.com/questions/580506