Portál AbcLinuxu, 14. května 2025 00:13

Dotaz: Bash skript (while) na zpracování souborů

8.10.2007 12:46 Petr0125
Bash skript (while) na zpracování souborů
Přečteno: 1873×
Odpovědět | Admin
V adresáři mám spoustu .mov souborů z digifoťáku a chci je převést na .avi. Odladil jsem nastavení mencoderu a jede to dobře. Akorát bych potřeboval napsat skript, který postupně pustí mencoder pro každý soubor v adresáři. Neumím v bashi napsat smyčku, aby postupně brala jednotlivé soubory a prohnala je mencoderem. Název souboru zůstane, jen zkonvertovany soubor bude mit priponu .avi.

V PHP by to vypadalo nějak takto:

$handle = opendir("adresar");
while (false !== ($file = readdir($handle))) {
//Prikaz postupne zpracovávající jednotlivé soubory, název souboru mám v $file
// mencoder $file $file.avi -parametry
}
closedir($handle);

Pomůžete mi někdo s bashem?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.10.2007 12:58 petris
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
A zkousel jste v bashi help for nebo help while? Pak byste ji urcite napsat umel...

for file in *.mov; do mencoder $file $file.avi -parametry; done
8.10.2007 13:37 pht
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Jeste by to chtelo stripnout tu koncovku mov.

for file in *.mov; do mencoder $file -parametry -o ${file/%.mov/.avi}; done
8.10.2007 13:41 petris
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
"nazev souboru zustane, jen bude mit priponu avi" chapu tak, ze proste nakonec nazvu pripojim .avi. Dokonce to tak je i v tom php prikladu
8.10.2007 15:34 Petr0125
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
To už je detail.
8.10.2007 15:35 Petr0125
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Díky, večer doma vyzkouším.
8.10.2007 13:44 ajikdpoe | skóre: 23 | blog: dvh
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in *.mov; do
  mencoder $i `echo $i | sed 's/\.mov/\.avi/'` -parametre
done
8.10.2007 14:08 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
jestli mas php muzes pouzit i primo php viz http://www.php.net/manual/cs/features.commandline.php

mencoder spustis volanim system():

system("mencoder $file $file.avi -parametry");
8.10.2007 15:36 Petr0125
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
To mě taky napadlo, ale musel bych instalovat PHP a kvůli tomuto je to zbytečné. Přes bash je to efektivnější.
8.10.2007 16:24 petr
Rozbalit Rozbalit vše Re: Bash skript (while) na zpracování souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
A nebo přímo findem:
# spustit v adresáři s *.mov soubory

find . -maxdepth 1 -type f -name '*.mov' -exec mencoder '{}' '{}.avi' -parametry ';'

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.