Почетак › Форуми › Линукс › Опште Линукс дискусије › Problem sa html knjigama…
- Ова тема има 8 одговора, 5 гласова, а последњи пут ју је ажурирао
Časlav Ilić, 18 година раније.
-
АуторЧланци
-
11. октобар 2008. у 8:08 pm #10448
zchira
УчесникNasao sam na starom disku polarisovu SF biblioteku (gomila SF romana na srpskom). Problem je sto su svi linkovi u html fajlovim pisani malim slovima, a svi folderi na fajl sistemu imaju imena ispisana velikim, tako da klikom na bilo kojii link dobijam gresku da neki fajl ne postoji (tj. fajl postoji ali kod linuxa su imena case sensitive pa ne moze da ga nadje)…
Jel zna neko kako da workaround-ujem ovo?
11. октобар 2008. у 10:09 pm #72980BRANKKO
МодераторNapises skriptu koja sve lowercase-uje(?)
[code]#!/bin/bash
for filename in *
do
n=`echo $filename | tr ‘[:upper:]’ ‘[:lower:]’`
mv $filename $n
done
[/code]A pogledaj i ovo http://www.cyberciti.biz/faq/linux-unix-shell-programming-converting-lowercase-uppercase/
http://gnuru.org/article/815/converting-filenames-lowercase11. октобар 2008. у 10:16 pm #72981dukenukem_4d
УчесникProbaj da umountuješ iso9660 sistem datoteka sa dodatnim parametrom
check=relaxedWith check=relaxed, a filename is first converted to lower case before doing the lookup
😀
(man:mount)11. октобар 2008. у 10:22 pm #72982BRANKKO
Модератор@dukenukem_4d
Ladno…12. октобар 2008. у 10:03 am #72983Časlav Ilić
УчесникNapises skriptu koja sve lowercase-uje(?)
То му онда побије и велика слова у тексту…
Него, можда довољно да се умање слова унутар сваког [tt][/tt] које је цело у једном реду, овако:
[code]$ cd Polaris…
$ find -iname *.html | xargs perl -pi -e ‘s///g'[/code]12. октобар 2008. у 10:12 am #72984Časlav Ilić
УчесникПих, заменио сам улоге елемената у проблему 🙂 Онда како је Бранко рекао, односно може и у једном реду:
[code]$ cd Polaris…
$ find -type f | xargs rename ‘s/(.*)/${lc $1}/'[/code]12. октобар 2008. у 10:25 am #72985dens
УчесникPre par godina sam baš taj problem rešavao, tj uradio sam sve potrebne zamene i izbacio neke nepotrebne elemente…
Bilo je tu nekoliko tipova grešaka i nekonzistentnosti.
12. октобар 2008. у 5:19 pm #72986zchira
УчесникHvala svima O0
Nasao sam ovaj script koji mi je renameovao sve foldere u lowerCase:#!/bin/bash
#
# Filename: rename.sh
# Description: Renames files and folders to lowercase recursively
# from the current directory
# Variables: Source = x
# Destination = y#
# Rename all directories. This will need to be done first.
## Process each directory’s contents before the directory itself
for x in `find * -depth -type d`;
do# Translate Caps to Small letters
y=$(echo $x | tr ‘[A-Z]’ ‘[a-z]’);# check if directory exits
if [ ! -d $y ]; then
mkdir -p $y;
fi# check if the source and destination is the same
if [ “$x” != “$y” ]; then# check if there are files in the directory
# before moving it
if [ $(ls “$x”) ]; then
mv $x/* $y;
fi
rmdir $x;fi
done
#
# Rename all files
#
for x in `find * -type f`;
do
# Translate Caps to Small letters
y=$(echo $x | tr ‘[A-Z]’ ‘[a-z]’);
if [ “$x” != “$y” ]; then
mv $x $y;
fi
doneexit 0
12. октобар 2008. у 5:56 pm #72987Časlav Ilić
УчесникОно јесте да моја последња једноредница није чинила посао сасвим темељито — требало би је извршити неколико пута за редом 🙂 — и да је проблем сређен, али ради потпуности да доправим:
[code]$ find | sort -r | xargs rename ‘s/([^/]*)$/${lc $1}/'[/code]
уради, дакле, исто што и та скриптина 🙂 -
АуторЧланци
Мораш бити пријављен да би поставио коментар у овој теми.