skript bashi

Sekcia: Programovanie 05.02.2008 | 19:32
Avatar Pali   Používateľ
na vytvorenie playlistu mp3 do mobilu musim pouzivat windows, pretoze nokia nema linux programy.

Avsak prisiel som na to ze v zlozke PredefPlaylist sa nachadzaju tieto playlisty a dokazem s nimi manipulovat (kopirovat PC <--> Mobil) cez obexftp.

Playlist vyzera nasledovne:
#EXTM3U
#EXTINF:-1,- 01 - 100 rokov samoty.mp3
E:\Hudba\Desmod - Uhol Pohladu\01 - 100 rokov samoty.mp3
#EXTINF:-1,- 02 - Kym si blizko.mp3
E:\Hudba\Desmod - Uhol Pohladu\02 - Kym si blizko.mp3
#EXTINF:-1,- 03 - Adrenalin stupa.mp3
E:\Hudba\Desmod - Uhol Pohladu\03 - Adrenalin stupa.mp3
#EXTINF:-1,- 04 - Zhori vsetko co mam.mp3
E:\Hudba\Desmod - Uhol Pohladu\04 - Zhori vsetko co mam.mp3
#EXTINF:-1,- 05 - Niekto ti to povie skor nez ja.mp3
E:\Hudba\Desmod - Uhol Pohladu\05 - Niekto ti to povie skor nez ja.mp3
#EXTINF:-1,- 06 - Vodopad.mp3
E:\Hudba\Desmod - Uhol Pohladu\06 - Vodopad.mp3
#EXTINF:-1,- 07 - Uhol pohladu.mp3
E:\Hudba\Desmod - Uhol Pohladu\07 - Uhol pohladu.mp3
#EXTINF:-1,- 08 - Na kratkych vlnach.mp3
E:\Hudba\Desmod - Uhol Pohladu\08 - Na kratkych vlnach.mp3
#EXTINF:-1,- 09 - Zostane ticho.mp3
E:\Hudba\Desmod - Uhol Pohladu\09 - Zostane ticho.mp3
#EXTINF:-1,- 10 - Prve miesto.mp3
E:\Hudba\Desmod - Uhol Pohladu\10 - Prve miesto.mp3
#EXTINF:-1,- 11 - V dolinach.mp3
E:\Hudba\Desmod - Uhol Pohladu\11 - V dolinach.mp3

E:\ urcuje pamatovu kartu.

Ja vsak mam tieto subory aj v PC a mam zaujem si vytvarat takyto playlist z roznych priecinkov.

Ako by som dokazal vytvorit takyto subor?
ked dam v priecinku PC ls -1 *.mp3 dostanem:
01 - 100 rokov samoty.mp3
02 - kym si blizko.mp3
03 - adrenalin stupa.mp3
04 - zhori vsetko co mam.mp3
05 - niekto ti to povie skor nez ja.mp3
06 - vodopad.mp3
07 - uhol pohladu.mp3
08 - na kratkych vlnach.mp3
09 - zostane ticho.mp3
10 - prve miesto.mp3
11 - v dolinach.mp3
Cize ja pred kazdy riadok vypisu ls -1 potrebujem dat rovnaky text, ktory si zvolim v premennej. Ako mam toto spravit v bashi?
    • Re: skript bashi 05.02.2008 | 19:47
      Avatar nardew debian  Používateľ
      for i in $(ls ./); do
      echo $text $i
      done
      • Re: skript bashi 06.02.2008 | 16:10
        Avatar Pali   Používateľ
        no to je pekne. Ale nefunguje mi to na suboroch s medzerami. treba to nejak opravit. (Neviem ako)

        A potrebujem este jeden skript, ktory mi vypise iba adresare, ale aby fungoval aj na adresare s mederami.
        Nasledujuci skript na adresare s mederami nefunguje. Ako sa da opravit?
        for i in $(ls -d */ -1); do echo $i; done
        • Re: skript bashi 06.02.2008 | 16:29
          Avatar Miroslav Bendík Gentoo  Administrátor
          stačí dať do "" ;)
          • Re: skript bashi 06.02.2008 | 17:57
            Avatar nardew debian  Používateľ
            nestaci, lebo potom for ziteruje len cez jeden parameter
        • Re: skript bashi 06.02.2008 | 18:05
          Avatar nardew debian  Používateľ
          mas pravdu, na to som zabudol. pred ten for vloz este IFS="
          "
          pricom je dolezite, aby za prvou uvodzovkou bol prave jeden enter
          • Re: skript bashi 06.02.2008 | 18:06
            Avatar nardew debian  Používateľ
            IFS="
            "
            • Re: skript bashi 06.02.2008 | 18:28
              Avatar Marián Ščerbák   Používateľ
              no, a teraz uz len zaplatit nardewovi pivecko :-)
              • Re: skript bashi 06.02.2008 | 20:47
                Avatar Pali   Používateľ
                no akosi som sa uz stratil k comu to je a ako ma vyzerat ten cyklus.

                mozete mi napisat ako ma presne vyzerat cyklus na vypis priecinkov (nie rekurzivne) v aktualnom? (aby to fungovalo aj s mederami v nazve)

                a vypis mp3 suborov (nie rekurzivne) aj s medzerami v nazve?
                • Re: skript bashi 07.02.2008 | 01:43
                  Avatar nardew debian  Používateľ
                  IFS="
                  "
                  for zvysok presne ako predtym
                  ...
                  done
                  • Re: skript bashi 07.02.2008 | 06:23
                    m4rtin.m   Návštevník
                    alebo IFS=$"\n"
                    • Re: skript bashi 07.02.2008 | 14:33
                      Avatar Pali   Používateľ
                      no IFS=$"\n" nefunguje ale funguje
                      IFS="
                      "
                      • Re: skript bashi 07.02.2008 | 15:30
                        Avatar Pali   Používateľ
                        no je tu este jeden problem
                        ak mam nejaku zlozku, ktora uz neobsahuje ziadne zlozky
                        tak mi ls -d */ vypise chybu:
                        ls: */: No such file or directory
                        
                        Ako sa to da osetrit?
                        +zlozka1
                        +zlozka2
                        +zlozka5
                        -subor1
                        -subor2
                        +zlozka3
                        +zlozka4
                        -subor3
                        Zlozka3 a zlozka4 nema ziadne dalsie podzlozky, cize ls -d */ vypise tu chybu.
                        Co sa s tym da robit? Pretoze cyklus to neignoruje.
                        • Re: skript bashi 07.02.2008 | 18:42
                          Avatar nardew debian  Používateľ
                          v ls nedavaj optionu -d, ale vypisuj vsetko a do tela foru vloz if, kde sa otestuje ci to je adresar
                          • Re: skript bashi 08.02.2008 | 18:00
                            Avatar Pali   Používateľ
                            a ako viem zistit ci je to adresar?
                            • Re: skript bashi 08.02.2008 | 21:12
                              Avatar nardew debian  Používateľ
                              man test