Minusta järkevintä sinun olisi asentaa KRename, jolla voisit helposti varmistaa, että uudet nimet menevät oikein ennen kuin mitään tehdään.
Mutta tässä ratkaisut Pythonille ja Zsh:lle.
Python-versio haluaa muutettavien tiedostojen nimet parametreiksi:
#!/usr/bin/env python3
import sys
import os
import re
pat = re.compile(r'^(\d+)\s-\s(.+)$')
for name in sys.argv[1:]:
m = pat.match(name)
if m:
_, new_name = m.groups()
print(f'{name} -> {new_name}')
try:
os.rename(name, new_name)
except OSError:
print('VIRHE!')
Zsh-versio ei vaadi parametreja ja hakee vain tiedostonimiä, jotka alkavat numerolla ja päättyvät .flac, .mp3 tai .ogg:
#!/bin/zsh
local name new_name
for name in <->*.(flac|mp3|ogg); do
new_name=${name##<-> - }
mv -v $name $new_name
done