Početak › Forumi › Linuks › Opšte Linuks diskusije › Problem sa html knjigama…
- This topic has 8 odgovora, 5 glasova, and was last updated 17 years, 10 months ranije by
Časlav Ilić.
-
AutorČlanci
-
11. oktobar 2008. u 8:08 pm #10448
zchira
UčesnikNasao 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. oktobar 2008. u 10:09 pm #72980BRANKKO
ModeratorNapises 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. oktobar 2008. u 10:16 pm #72981dukenukem_4d
UčesnikProbaj 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. oktobar 2008. u 10:22 pm #72982BRANKKO
Moderator@dukenukem_4d
Ladno…12. oktobar 2008. u 10:03 am #72983Časlav Ilić
UčesnikNapises skriptu koja sve lowercase-uje(?)
To mu onda pobije i velika slova u tekstu…
Nego, možda dovoljno da se umanje slova unutar svakog [tt][/tt] koje je celo u jednom redu, ovako:
[code]$ cd Polaris…
$ find -iname *.html | xargs perl -pi -e ‘s///g'[/code]12. oktobar 2008. u 10:12 am #72984Časlav Ilić
UčesnikPih, zamenio sam uloge elemenata u problemu 🙂 Onda kako je Branko rekao, odnosno može i u jednom redu:
[code]$ cd Polaris…
$ find -type f | xargs rename ‘s/(.*)/${lc $1}/'[/code]12. oktobar 2008. u 10:25 am #72985dens
UčesnikPre 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. oktobar 2008. u 5:19 pm #72986zchira
UčesnikHvala 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. oktobar 2008. u 5:56 pm #72987Časlav Ilić
UčesnikOno jeste da moja poslednja jednorednica nije činila posao sasvim temeljito — trebalo bi je izvršiti nekoliko puta za redom 🙂 — i da je problem sređen, ali radi potpunosti da dopravim:
[code]$ find | sort -r | xargs rename ‘s/([^/]*)$/${lc $1}/'[/code]
uradi, dakle, isto što i ta skriptina 🙂 -
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.