Hromadne prejmenovani souboru jeste jednou

Alexandr Malusek malusek na hroch.ujf.cas.cz
Úterý Červen 20 16:43:23 CEST 2000


thebigone na centrum.cz (David Sumsky) writes:

> > :> Takze bych potreboaval ty soubory prejmenovat tak, aby prvni 
> > :> pismeno v nazvu zustalo velke a zbyle byly male.
> ...
> Jeste bych rad videl neco podobneho v shellu, jde to nejak?

Ano. Dokonce se to da udelat "cele" v shellu (ksh), ale neni to ani
elegantni, ani univerzalni (soubory nemohou obsahovat mezery, konverze
pravdepodobne nezafunguje OK na znaky s akcenty, ...). Reseni v Perlu
se mi libi vic.

#!/bin/ksh

function newname {
  typeset -L1 ap=$1       # ap = prvni znak
  typeset -l az=${1##?}   # az = zbytek
  echo "${ap}${az}"
}

ls | while read name1; do
  name2="$(newname $name1)"
  if [[ "$name1" != "$name2" ]]; then
    mv "$name1" "$name2"
  fi
done

Misto "typeset -l ..." je samozrejme mozne pouzit "tr ..." a cela
konstrukce se da zkratit.

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux