Rename
Beispiel:
> rename -h
Usage: rename [options] -o -n ...
or: rename [options] = ...
Options:
-v[erbose]: displays actions
-i[nteractive]: asks for confirmation, implies -v
-t[est]: don't execute, implies -v, overrides -i
-h[elp]
> ls *
bild.000.jpg bild.001.jpg bild.002.jpg bild.003.jpg bild.004.jpg
bild.005.jpg bild.006.jpg bild.007.jpg bild.008.jpg bild.009.jpg
bild.010.jpg bild.011.jpg bild.012.jpg bild.013.jpg bild.014.jpg
bild.015.jpg bild.016.jpg bild.017.jpg bild.018.jpg bild.019.jpg
drehbuch.txt szene1.txt szene2.txt
> rename bild=film *
> rename -v txt=txt.bak s*.txt
mv szene1.txt szene1.txt.bak
mv szene2.txt szene2.txt.bak
> ls *
film.000.jpg film.001.jpg film.002.jpg film.003.jpg film.004.jpg
film.005.jpg film.006.jpg film.007.jpg film.008.jpg film.009.jpg
film.010.jpg film.011.jpg film.012.jpg film.013.jpg film.014.jpg
film.015.jpg film.016.jpg film.017.jpg film.018.jpg film.019.jpg
drehbuch.txt szene1.txt.bak szene2.txt.bak
Shellscript:
#!/bin/csh
# author: Achim Stoesser
# Fri Nov 26 15:57:51 MET 1993
set oldtext=""
set newtext=""
set v=0
set i=0
set y=1
set t=0
while ($#argv > 0)
switch ($1)
case -*:
switch ($1)
case -v*:
set v=1
breaksw
case -i*:
set i=1
set v=1
breaksw
case -t*:
set t=1
set y=0
set v=1
breaksw
case -o*:
set oldtext=$2
shift argv
breaksw
case -n*:
set newtext=$2
shift argv
breaksw
case -*:
echo "Usage: rename [options] -o -n ..."
echo " or: rename [options] = ..."
echo "Options:"
echo " -v[erbose]: displays actions"
echo " -i[nteractive]: asks for confirmation, implies -v"
echo " -t[est]: don't execute, implies -v, overrides -i"
echo " -h[elp]"
exit(1)
breaksw
endsw
breaksw
case *=*:
set oldtext=`echo $1|sed -e "s/=.*//"`
set newtext=`echo $1|sed -e "s/.*=//"`
breaksw
default:
if ($oldtext == "") then
echo "Error: oldtext must not be empty"
exit(1)
endif
set newname=`echo $1 | sed -e "s/$oldtext/$newtext/g"`
if ($1 != $newname) then
if ($v) echo mv $1 $newname
if (($t != 1) && ($i)) then
echo -n "rename "$1"? "
set a=$<
switch ($a)
case [yY]*:
set y=1
breaksw
default:
set y=0
breaksw
endsw
endif
if ($y) mv -i $1 $newname
endif
breaksw
endsw
shift argv
end