Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Medzery v názve súboru v shell skriptoch  (Přečteno 3483 krát)

mipo

  • Návštěvník
  • Příspěvků: 77
    • http://www.mipo.us
Medzery v názve súboru v shell skriptoch
« kdy: 20 Prosince 2006, 17:42:53 »
Urobil som si skriptím na generovanie webovej galérie. Má zobrať názvy súborov, očíslovať ich ,podľa vstupného parametra $1 pomenovať, vytovriť náhľady a vygenerovať HTML kód. Všetko funguje ako má, pokiaľ názov súboru neobsahuje medzeru, t.j. pokiaľ mám súbor "abx xyz", tak to zoberie ako dva súbory abc a xyz. Ako to urobiť aby súbory s medzerami v názve bral normálne?
Vopred díky!

Kód skriptu:
Kód: [Vybrat]
#!/bin/sh

subory=`ls * 2> /dev/null`
i=1
stlpce=4
riadky=4
pocetStlpcov=0
pocetRiadkov=1

echo '
'
echo '

'

for subor in $subory ; do
  pocetStlpcov=`expr $pocetStlpcov + 1`
  if [ $pocetStlpcov -gt $stlpce ] ; then
    pocetStlpcov=1
    pocetRiadkov=`expr $pocetRiadkov + 1`
    if [ $pocetRiadkov -gt $riadky ] ; then
      echo '

'
    else
      echo '

'
    fi
  fi
  novyNazov=00$i-$1.`echo $subor | tr [A-Z] [a-z] | awk -F. '{ print $2 }'`
  mv $subor $novyNazov
  i=`expr $i + 1`
  convert -geometry 100x $novyNazov "small_"$novyNazov
  echo '

'$novyNazov'
'
done

echo '

'
MiPo - Zápisník - TV program - Kalos club
HP nx6125 AMD64 - Ubuntu 6.06 32bit

LS

  • Závislák
  • ***
  • Příspěvků: 3849
    • http://linux.euweb.cz
Medzery v názve súboru v shell skriptoch
« Odpověď #1 kdy: 20 Prosince 2006, 18:11:35 »
bud do uzovovek nebo pred mezeru pridat backslash (\)

zigi

  • Aktivní člen
  • *
  • Příspěvků: 389
Medzery v názve súboru v shell skriptoch
« Odpověď #2 kdy: 20 Prosince 2006, 18:27:42 »
podivej se na man ls a parametry -b a -1 (jedna) a na promenou bashe IFS viz. man bash
..:: be free - use kubuntu ::..

mipo

  • Návštěvník
  • Příspěvků: 77
    • http://www.mipo.us
Medzery v názve súboru v shell skriptoch
« Odpověď #3 kdy: 20 Prosince 2006, 20:06:43 »
ls -1 som skúšal, keď dám ls -b, obajví sa následovné:

Kód: [Vybrat]


mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `001-podsvietenie-pristrojovky.': No such file or directory.

001-podsvietenie-pristrojovky.

mv: cannot stat `1.JPG': No such file or directory
convert: unable to open image `002-podsvietenie-pristrojovky.jpg': No such file or directory.
002-podsvietenie-pristrojovky.jpg

mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `003-podsvietenie-pristrojovky.': No such file or directory.
003-podsvietenie-pristrojovky.

mv: cannot stat `2.JPG': No such file or directory
convert: unable to open image `004-podsvietenie-pristrojovky.jpg': No such file or directory.
004-podsvietenie-pristrojovky.jpg


mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `005-podsvietenie-pristrojovky.': No such file or directory.

005-podsvietenie-pristrojovky.

mv: cannot stat `3.JPG': No such file or directory
convert: unable to open image `006-podsvietenie-pristrojovky.jpg': No such file or directory.
006-podsvietenie-pristrojovky.jpg

mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `007-podsvietenie-pristrojovky.': No such file or directory.
007-podsvietenie-pristrojovky.

mv: cannot stat `4.JPG': No such file or directory
convert: unable to open image `008-podsvietenie-pristrojovky.jpg': No such file or directory.
008-podsvietenie-pristrojovky.jpg


mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `009-podsvietenie-pristrojovky.': No such file or directory.

009-podsvietenie-pristrojovky.

mv: cannot stat `5_1.JPG': No such file or directory
convert: unable to open image `0010-podsvietenie-pristrojovky.jpg': No such file or directory.
0010-podsvietenie-pristrojovky.jpg

mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `0011-podsvietenie-pristrojovky.': No such file or directory.
0011-podsvietenie-pristrojovky.

mv: cannot stat `5.JPG': No such file or directory
convert: unable to open image `0012-podsvietenie-pristrojovky.jpg': No such file or directory.
0012-podsvietenie-pristrojovky.jpg


mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `0013-podsvietenie-pristrojovky.': No such file or directory.

0013-podsvietenie-pristrojovky.

mv: cannot stat `6.JPG': No such file or directory
convert: unable to open image `0014-podsvietenie-pristrojovky.jpg': No such file or directory.
0014-podsvietenie-pristrojovky.jpg

mv: cannot stat `obr\\': No such file or directory
convert: unable to open file `0015-podsvietenie-pristrojovky.': No such file or directory.
0015-podsvietenie-pristrojovky.

mv: cannot stat `7.JPG': No such file or directory
convert: unable to open image `0016-podsvietenie-pristrojovky.jpg': No such file or directory.
0016-podsvietenie-pristrojovky.jpg

Lukáš: ako myslíš úvodzovky, kam ich dať?
Som v podstate začiatočník v skriptoch, takže veľa toho neveim...
Každopádne díky za pomoc!
MiPo - Zápisník - TV program - Kalos club
HP nx6125 AMD64 - Ubuntu 6.06 32bit

Pavelp

  • Host
Medzery v názve súboru v shell skriptoch
« Odpověď #4 kdy: 20 Prosince 2006, 20:30:35 »
Nepouzivat mezery v nazvech.

Petr Odut

  • Aktivní člen
  • *
  • Příspěvků: 489
Medzery v názve súboru v shell skriptoch
« Odpověď #5 kdy: 20 Prosince 2006, 20:49:50 »
misto $subor -> "$subor"

LS

  • Závislák
  • ***
  • Příspěvků: 3849
    • http://linux.euweb.cz
Medzery v názve súboru v shell skriptoch
« Odpověď #6 kdy: 20 Prosince 2006, 21:09:12 »
Citace: Pavelp
Nepouzivat mezery v nazvech.
Souhlas. To je nesvar, ktery uzivatele naucily Windows 95+ (stejne jako pouzivani diakritiky v nazvech souboru). V praci jsem to uzivatele vice-mene uspesne odnaucil :)

Vojtěch Trefný

  • Příspěvků: 9307
  • Don Quijote
Medzery v názve súboru v shell skriptoch
« Odpověď #7 kdy: 20 Prosince 2006, 21:15:03 »
Citace: lukas.svoboda
Citace: Pavelp
Nepouzivat mezery v nazvech.
Souhlas. To je nesvar, ktery uzivatele naucily Windows 95+ (stejne jako pouzivani diakritiky v nazvech souboru). V praci jsem to uzivatele vice-mene uspesne odnaucil :)
Windows 95? Ty (a 98 taky) při diakritice a mezeře řvaly, že to nejde, ty se daly přidávat až po příchodu ME (nové jádro), ale nejsem si jist na 100% (nejsem zrovna MS Windows specialista).

Jakub Lucký

  • Závislák
  • ***
  • Příspěvků: 3433
    • Jakub Lucký
Medzery v názve súboru v shell skriptoch
« Odpověď #8 kdy: 20 Prosince 2006, 21:47:26 »
Měsíc na linuxu a taky se to odnaučuju...
Ale je toas  těžké... :-)
Obzvlášť když by to potřebovalo vyřešit mých 8GB hudby apod :-)
FAQ-Často kladené otázky   Návody(wiki)     
Jakub@Life:~$ Ubuntu změnilo váš život, přejete si změny uložit?(Y/N)?
Děkujeme, že nekrmíte trolly Blogísek  :wq

LS

  • Závislák
  • ***
  • Příspěvků: 3849
    • http://linux.euweb.cz
Medzery v názve súboru v shell skriptoch
« Odpověď #9 kdy: 20 Prosince 2006, 21:49:23 »
Citace: vojtech.t
Windows 95? Ty (a 98 taky) při diakritice a mezeře řvaly, že to nejde, ty se daly přidávat až po příchodu ME (nové jádro), ale nejsem si jist na 100% (nejsem zrovna MS Windows specialista).
Podpora dlouhych nazvu a diakritiky v nazvech souboru je opravdu od Win95.

Pavelp

  • Host
Medzery v názve súboru v shell skriptoch
« Odpověď #10 kdy: 20 Prosince 2006, 21:55:47 »
Citace: lukas.svoboda
Citace: Pavelp
Nepouzivat mezery v nazvech.
Souhlas. To je nesvar, ktery uzivatele naucily Windows 95+ (stejne jako pouzivani diakritiky v nazvech souboru). V praci jsem to uzivatele vice-mene uspesne odnaucil :)
Zasluzna vec, jsem mene uspesny.

mipo

  • Návštěvník
  • Příspěvků: 77
    • http://www.mipo.us
Medzery v názve súboru v shell skriptoch
« Odpověď #11 kdy: 21 Prosince 2006, 08:32:45 »
Osobne som nepoužíval medzery a diakritiku ani na Win,a le niektorým ľuďom to nevysvetlíš:-(
Pre jeden web mi posielajú fotky aj neznámy ľudia, takže ich ťažko presvedčím aby nepoužívali medzery a pod.
MiPo - Zápisník - TV program - Kalos club
HP nx6125 AMD64 - Ubuntu 6.06 32bit

 

Provoz zaštiťuje spolek OpenAlt.