Kirjoittaja Aihe: Pieni skripti tiedostojen uudelleennimeämiseen [RATKAISTU]  (Luettu 2850 kertaa)

Eetu_

  • Käyttäjä
  • Viestejä: 261
    • Profiili
Eli, viitsisikö joku mukava ihminen tehdä tälläisen skriptin, joka muuttaisi tietyn hakemiston kaikki mp3-tiedostot muotoon 1.mp3, 2.mp3, 3.mp3... Järjestyksellä ei ole väliä, saa muuttaa nimet mistä tiedostosta vaan, kunhan lopputulos on "numero.mp3"

Olisin todella kiitollinen, jos saisin tämän toteutettua jotenkin muuten, kuin yksitellen nimeämällä.
« Viimeksi muokattu: 08.06.09 - klo:23.20 kirjoittanut Eetu_ »

jussike

  • Käyttäjä
  • Viestejä: 979
    • Profiili
Vs: Pieni skripti tiedostojen uudelleennimeämiseen
« Vastaus #1 : 07.06.09 - klo:23.29 »
Mites olisi vaikka näin:

Koodia: [Valitse]
j=0
for i in $(ls *.mp3)
do
  j=$(($j+1))
  mv $i $j.mp3
done

Eetu_

  • Käyttäjä
  • Viestejä: 261
    • Profiili
Vs: Pieni skripti tiedostojen uudelleennimeämiseen
« Vastaus #2 : 07.06.09 - klo:23.36 »
mv: tiedoston "Los" tilaa ei voi lukea: Tiedostoa tai hakemistoa ei ole
mv: tiedoston "Angeles" tilaa ei voi lukea: Tiedostoa tai hakemistoa ei ole
mv: tiedoston "Is" tilaa ei voi lukea: Tiedostoa tai hakemistoa ei ole
mv: tiedoston "Burning.mp3" tilaa ei voi lukea: Tiedostoa tai hakemistoa ei ole

Tuon biisin tiedostonimi on "Los Angeles Is Burning.mp3". Eli hakee väärillä nimillä vai teinkö jotain väärin?

jussike

  • Käyttäjä
  • Viestejä: 979
    • Profiili
Vs: Pieni skripti tiedostojen uudelleennimeämiseen
« Vastaus #3 : 07.06.09 - klo:23.43 »
Joo en arvannut, että sulla välejä noissa nimissä. En ehdi nyt pidemmälle tuota ajatella tällä kertaa...
« Viimeksi muokattu: 07.06.09 - klo:23.46 kirjoittanut jussike »

vellu@vmach

  • Käyttäjä
  • Viestejä: 348
  • Kiroitusvirheitä jo vuodesta feisty
    • Profiili
Vs: Pieni skripti tiedostojen uudelleennimeämiseen
« Vastaus #4 : 08.06.09 - klo:02.09 »
Välilyönnit_alaviivoiksi:
Koodia: [Valitse]
find . -depth | rename 's/\ /_/g' *

SuperOscar

  • Käyttäjä
  • Viestejä: 4060
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Pieni skripti tiedostojen uudelleennimeämiseen
« Vastaus #5 : 08.06.09 - klo:10.35 »
Pythonilla:

Koodia: [Valitse]
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os

if __name__ == '__main__':
    for root, dirs, files in os.walk('.'):
        for n, f in enumerate(files):
            os.rename(f, '%d%s' % (n + 1, os.path.splitext(f)[1]))

Toimii välilyönnillistenkin nimien kanssa.
« Viimeksi muokattu: 08.06.09 - klo:10.36 kirjoittanut SuperOscar »
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pieni skripti tiedostojen uudelleennimeämiseen [RATKAISTU]
« Vastaus #6 : 09.06.09 - klo:23.09 »
Tämä toimii välilyönnillistenkin tiedostonimien kanssa ja lisäksi tämä kelpuuttaa tiedostopäätteiksi pienten ja isojen kirjainten variaatiot (.mp3, .Mp3, .mP3 ja .MP3).

Koodia: [Valitse]
i=0
for f in *.[mM][pP]3; do
    (( ++i ))
    mv "$f" "$i.mp3"
done


Edit: Korjattu skriptissä ollut kirjoitusvirhe.
« Viimeksi muokattu: 10.06.09 - klo:14.09 kirjoittanut mgronber »