Problem sa html knjigama...
Dobrodošli, Gost. Molim vas prijavite se ili se registrujte.
Da li ste izgubili vaš aktivacioni e-mail?

Prijavite se sa korisničkim imenom, lozinkom i dužinom sesije

Linuxo Forumi

Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: Problem sa html knjigama...  (Pročitano 457 puta)
0 članova i 1 posetilac pregledaju ovu temu.
zchira
Sr. Member
****
Van mreže Van mreže

Poruke: 448


« poslato: 11 Октобар 2008, 21:08:29 »

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?

Prijavi uredniku   Sačuvana

BRANKKO
BRANKKO
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 567


www.brankko.iz.rs


WWW
« Odgovor #1 poslato: 11 Октобар 2008, 23:09:21 »

Napises skriptu koja sve lowercase-uje(?)

Kod:
#!/bin/bash
for filename in *
do
   n=`echo $filename | tr '[:upper:]' '[:lower:]'`
   mv $filename $n
done

A pogledaj i ovo http://www.cyberciti.biz/faq/linux-unix-shell-programming-converting-lowercase-uppercase/
http://gnuru.org/article/815/converting-filenames-lowercase
« Poslednja izmena: 11 Октобар 2008, 23:22:27 od BRANKKO » Prijavi uredniku   Sačuvana

dukenukem_4d
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 1370



« Odgovor #2 poslato: 11 Октобар 2008, 23:16:47 »

Probaj da umountuješ iso9660 sistem datoteka sa dodatnim parametrom
check=relaxed
Citat
With check=relaxed, a filename is first converted to lower case before doing the lookup
Cheesy
(man:mount)
Prijavi uredniku   Sačuvana

ADSL 512 Slackware Srbija Psy linux notorrni_modem ali se teže instalira od oootranslit ња ња ња
BRANKKO
BRANKKO
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 567


www.brankko.iz.rs


WWW
« Odgovor #3 poslato: 11 Октобар 2008, 23:22:52 »

@dukenukem_4d
Ladno...
Prijavi uredniku   Sačuvana

Časlav Ilić
Full Member
***
Na mreži Na mreži

Pol: Muškarac
Poruke: 222



« Odgovor #4 poslato: 12 Октобар 2008, 11:03:42 »

Citat: BRANKKO
Napises skriptu koja sve lowercase-uje(?)

То му онда побије и велика слова у тексту...

Него, можда довољно да се умање слова унутар сваког <...> које је цело у једном реду, овако:
Kod:
$ cd Polaris...
$ find -iname \*.html | xargs perl -pi -e 's/<(.*?)>/<${\lc $1}>/g'
Prijavi uredniku   Sačuvana
Časlav Ilić
Full Member
***
Na mreži Na mreži

Pol: Muškarac
Poruke: 222



« Odgovor #5 poslato: 12 Октобар 2008, 11:12:24 »

Пих, заменио сам улоге елемената у проблему :) Онда како је Бранко рекао, односно може и у једном реду:
Kod:
$ cd Polaris...
$ find -type f | xargs rename 's/(.*)/${\lc $1}/'
Prijavi uredniku   Sačuvana
dens
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 553



« Odgovor #6 poslato: 12 Октобар 2008, 11:25:18 »

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.
Prijavi uredniku   Sačuvana
zchira
Sr. Member
****
Van mreže Van mreže

Poruke: 448


« Odgovor #7 poslato: 12 Октобар 2008, 18:19:53 »

Hvala svima  Afro
Nasao sam ovaj script koji mi je renameovao sve foldere u lowerCase:

Citat
#!/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
done

exit 0
Prijavi uredniku   Sačuvana

Časlav Ilić
Full Member
***
Na mreži Na mreži

Pol: Muškarac
Poruke: 222



« Odgovor #8 poslato: 12 Октобар 2008, 18:56:44 »

Оно јесте да моја последња једноредница није чинила посао сасвим темељито — требало би је извршити неколико пута за редом :) — и да је проблем сређен, али ради потпуности да доправим:
Kod:
$ find | sort -r | xargs rename 's/([^\/]*)$/${\lc $1}/'
уради, дакле, исто што и та скриптина :)
Prijavi uredniku   Sačuvana
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na: