27 lutego, godzina 11:10, na pl.comp.dtp.tex.gust pisze Artur R. Czechowski:
>> przepraszam, ze troche off-topic, ale czy moze ktos powiedziec jak napisac
>> skrypt w perlu, ktory skroci nazwy wszystkich plikow wystepujacych w
>> biezacym katalogu do n-znakow (np. 110)?
> A musi być w perlu?
> #/bin/bash
> for plik in *; do
> mv $plik `echo $plik | cut -c -110`
> done
Wersja działająca nawet jeśli nazwy plików zaczynają się tak samo: :-)
# Ile uciąć?
CUT=5
for x in *; do
n=`echo $x|cut -c -$CUT`
num=0
while [[ -f $n ]]; do
n=`echo $x|cut -c -$[$CUT-$(echo -n $num|wc -c)]`$num
num=$[num+1]
done
mv -v $x $n
done
Shell to zsh, a skrypt działa [1]
Pozdrawiam,
Dawid
[1]: testowane na katalogu z wieloma plikami o podobnej nazwie oraz
plikami ze spacjami, apostrofami itp. Działa. :-)
--
.------------------. .----------.
| *Dawid Kuroczko* `----------------------------------------=' _Kraków_ |
| Those who do not understand Unix are condemned to reinvent it, poorly |
`------------------------------------------------------[Henry Spencer]--'