openSUSEa suomeksi
Muut => Yleinen keskustelualue => Aiheen aloitti: RaijaR - 01.11.2026 - klo:18:54
-
Minulla on kohtuulisen paljon proge- ja hevi-musikkia tallennetuna tietokoneelle, kun tuli hurahdettua em. musiikkiin jo 70-luvun alussa.
Olen kopionut musiikitiedostoja tietokoneen hakemistoon, joka on toistaiseksi nimetty musiikki/äää.
Koska vuosien saatossa on tullut nimettyä tiedostoja vähän niin sun näin, niin pyydän, josko joku ystävällisesti voisi tehdän skriptin, jolla nimet voisi vaihtaa alkuperäiseksi :). Itse en osaa.
Homma ei pitäisi olla turhan ongelmallinen eli tiedostonimen alusta pitäisi poistaa vain numerot. ;)
eli esim. "01 - " pois nimen edestä.
-
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