#!/bin/sh
# renna: preimenuje več datotek po določenih pravilih
# napisal felix hudson Jan - 2000
# najprej preverimo za različne 'načine', ki jih program ima.
# če prvi argument ($1) ustreza pogoju, izvedemo določen del
# programa ter nato končamo izvajanje skripta
# preverimo, ali gre za primer predpone
if [ $1 = p ]; then
# zdaj se znebimo spremenljivke za način ($1) ter predpone ($2)
predpona=$2 ; shift ; shift
# hiter preskus, ki preveri, ali so bila podana imena datotek
# če niso bila, je bolje, da ne storimo ničesar, kakor
# da bi poskušali preimenovati datoteke, ki jih ni!!
if [$1 = ]; then
echo "datoteke niso bile podane"
exit 0
fi
# ta zanka se ponovi za vsako datoteko, ki je bila podana
# skriptu, ter preimenuje eno naenkrat
for datoteka in $*
do
mv ${datoteka} $predpona$datoteka
done
# tu končamo izvajanje
exit 0
fi
# preverimo, ali gre za preimenovanje končnice
# ta del je skoraj enak prejšnjemu, zato nima zaznamkov
if [ $1 = k ]; then
koncnica=$2 ; shift ; shift
if [$1 = ]; then
echo "datoteke niso bile podane"
exit 0
fi
for datoteka in $*
do
mv ${datoteka} $datoteka$koncnica
done
exit 0
fi
# preverimo, ali gre za zamenjavo vzorca
if [ $1 = z ]; then
shift
# tale del sem dodal zato, da takrat, ko uporabnik ne
# navede parametrov, ne poškodujemo datotek
if [ $# -lt 3 ] ; then
echo "uporaba: renna z [izraz] [zamenjava] datoteke... "
exit 0
fi
# odstranimo druge parametre
STARO=$1 ; NOVO=$2 ; shift ; shift
# ta zanka se ponovi za vsako datoteko, ki je bila podana
# skriptu, in jo preimenuje z uporabo programa 'sed', ki v
# besedilu iz standardnega vhoda poišče izraz in ga zamenja z
# drugim. Tu mu na standardni vhod podamo ime datoteke.
for datoteka in $*
do
NOVO_IME=`echo ${datoteka} | sed s/${STARO}/${NOVO}/g`
mv ${datoteka} $NOVO_IME
done
exit 0
fi
# če smo prišli do sem, to pomeni, da programu ni bil podan
# noben parameter, zato uporabniku povemo, kako se ga uporablja
echo "uporaba;"
echo " renna p [predpona] datoteke.."
echo " renna k [končnica] datoteke.."
echo " renna z [izraz] [zamenjava] datoteke.."
exit 0
# končano!