@clockwork_orange: lista=echo {a..z}; for i in $lista; do for j in $lista; do echo $i$j.ext >> /tmp/newfilenames.txt ; done; done;filenumber=1; for i in ls; do mv $i cat /tmp/newfilenames.txt | head -n $filenumber | tail -n 1;filenumber=$(($filenumber+1)); done; rm -f /tmp/filenames.txt
mam 600 plików o randomowych nazwach, potrzebuje zmienić ich nazwę w ten sposób:
aa.ext
ab.ext
ac.ext
...
zz.ext
gdzie ext to moje rozszerzenie, a nazwa pliku to kombinacja dwuliterowa - od aa do zz, plików jest mniej niż dostępnych kombinacji liter
jak to najłatwiej zrobić w bashu?
list=echo {a..z}; for c1 in $list ; do for c2 in $list ; do echo $c1$c2.ext; done; donegeneruje mi nazwy jakie chce
for i in *; do F=$(mktemp -u); mv "$i" ${F##*.}; donezmienia nazwy na randomowe, potrzebuję to teraz połączyć :D
kk, zrobiłem to na okrężną drogę:
list=echo {a..z}; for c1 in $list ; do for c2 in $list ; do echo $c1$c2.ext; done; done >> fnames.txtpotrzebuję stworzyć trochę plików z randomowym tekstem (na macu może się pluć o illegal byte sequence, to dajemy przed komendą:
export LC_CTYPE=C)< /dev/urandom tr -dc "\t\n [:alnum:]" | dd of=./plik bs=100000000 count=1 && split -b 50 -a 10 ./plik && rm ./pliklistuję pliki w katalogu
Moze byc perl, albo cokolwiek co wykonam z linii polecen.