Nebaví mě to dělat ručně
Tento článek rozhodně nebude nemravný, ale čistě technický. To jen tak úvodem 

11.11.2008
v 20:42
Nedávno jsem si stáhl seriál Stargate (ano, už ase, starý externí disk mi odešel, takže jsem tahal nanovo). Nechci se nikoho dotknout, ale vůbec nechápu, jak někdo může jednotlivé díly seriálu nazvat stylem Stargate SG-1 [1x14] Singularity.avi namísto 01x14 - Singularity.avi. To že to je Stargate je jasné hned z adresáře, nebudu si přeci disk špinit tisíci soubory v jednom adresáři. Na co ty hranaté závorky? A proč označení 1x14 místo 01x14, když sérií je celkem 10 a desátá série se tak logicky neseřadí nakonec, ale před první?
Řekl jsem si tedy, že budu názvy souborů přepisovat. Protože jsem si své užil už u Stargate Atlantis, kde jsem soubory přejmenovával ručně, nechtěl jsem podobný vopruz zažít znovu. Vytvořil jsem si tedy následující skript rename.sh:
#!/bin/bash
#
for newfile in *
do
oldfile=$newfile
old='\['
new='0'
newfile=`echo $newfile | sed -e "s/$old/$new/g"`
old=']'
new=''
newfile=`echo $newfile | sed -e "s/$old/$new/g"`
old='Stargate'
new=''
newfile=`echo $newfile | sed -e "s/$old/$new/g"`
old='SG-1'
new=''
newfile=`echo $newfile | sed -e "s/$old/$new/g"`
old=' '
new=' '
newfile=`echo $newfile | sed -e "s/$old/$new/g"`
old=' '
new=' - '
newfile=`echo $newfile | sed -e "s/$old/$new/"`
if [ "$oldfile" != "$newfile" ]; then
echo $oldfile "->" $newfile
mv "$oldfile" "$newfile"
fi
done
Skript jednoduše najde všechny soubory, změní nepotřebné výskyty, některé přidá a následně původní soubor přejmenuje (pokud se liší).
Desítky a desítky ušetřených minut
.
.Nádhera, no ne? 


Komentáře
Zobrazit vše Počet příspěvků: 0