Sida 1 av 1

Byta namn på en massa filer

Postat: 19 maj 2008, 18:37
av Banana tree
Hej.

Har en mapp som innehåller ett trettiotal mappar och i dem mapparna finns det ljudfiler som jag vill flytta till en gemensam mapp. Det kan jag fixa, men sen vill jag ändra namn på samtliga filer. De alla börjar med två siffror ett mellanslag ett bindestreck och ett mellanslag, det vill jag byta ut mot en sträng. "nn - <namn>.mp3" ska bli "David Bowie - <namn>.mp3". Någon som måhända skulle kunna slänga ihop ett bashscript för mig som inte kan bash så bra? :)

Re: Byta namn på en massa filer

Postat: 19 maj 2008, 18:49
av KiviE

Kod: Markera allt

#!/bin/bash
for fil in *.mp3; do mv "$fil" "${fil/[0-9][0-9]/David Bowie}"; done
Sådär? Du kan ju testa med att byta ut mv till echo för att se om det blir rätt först :)

Re: Byta namn på en massa filer

Postat: 19 maj 2008, 19:07
av Konservburk
En variant med find som går igenom alla underkataloger...

Kod: Markera allt

#!/bin/bash

find . -iname '[0-9][0-9] - *.mp3' -print0 \
| while read -d '' fil
do mv -- "$fil" ./"David Bowie${fil#*/[0-9][0-9]}"
done

Re: Byta namn på en massa filer

Postat: 19 maj 2008, 19:18
av Cadryc
Definitivt script att spara :) , även om jag inte fattar så mycket av dom. Ser att trådskaparen efterfrågade script, men om nån annan kollar tråden och föredrar nånting mindre avancerat och med gui så finns pyRenamer och prefixsuffix i lägg till/ta bort, med de har jag med lite kreativt användande lyckats ändra en hel del, ganska smidigt ändå.