Bash skript pro řazení souborů pomocí file

Bash skript pro řazení souborů pomocí file
« kdy: 18. 05. 2010, 15:56:21 »
zdravím, potřeboval bych trochu píchnout se stavbou skriptu na řazení souborů na základě jejich obsahu, nejlepší na to asi bude file... Potřebuju roztřídit hromadu souborů (směs textu, obrázků a ostatních) do tří adresářů "obrazky" "text" a "ostatni". (samozřejmě ošetření tvorby prázndých složek, když v hromadě soubory daného typu nebudou)

file /home/hromada/*.* | grep "image" > /home/seznamobrazku
file /home/hromada/*.* | grep "text" > /home/seznamtextu

takhle si vygeneruju seznam souborů, tu tvorbu adresářů ošetřím if podmínkou jestli tam seznam je tak udělám složku atp...

ale pak babo raď, nedokázal jsem do for cyklu zapsat projíždění těch seznamů a mv souborů do patřičných složek  :-[

jsem linuxová lamička a nestydím se to přiznat, programátor ze mě asi nikdy nebude :)
« Poslední změna: 19. 05. 2010, 00:02:22 od Petr Krčmář »


kozec

Re: pomoc s bash skriptem řazení souborů pomocí file
« Odpověď #1 kdy: 18. 05. 2010, 17:22:05 »
Snad som zadanie pochopil spravne...
Kód: [Vybrat]
for subor in * ; do
  if [ $(file "$subor" | egrep "[^:]+:.*image" | wc -l) == 1 ] ; then
    echo "$subor je obrazok"
  fi
done
vykona echo "$subor je obrazok" len pre tie subory, pre ktore file spomenie image.

Alebo, ak trvas na tych suboroch so zoznamom...
Kód: [Vybrat]
cat zoznam.txt | cut -d ":" -f 1 | while read subor; do
   echo "Nacitane zo suboru:" "$subor"
   done
... ale mozes narazit na problem, ak ma niektori zo suborov v nazve dvojbodku.
« Poslední změna: 18. 05. 2010, 17:24:31 od kozec »

Re: pomoc s bash skriptem řazení souborů pomocí file
« Odpověď #2 kdy: 18. 05. 2010, 18:23:55 »
ó všemocný guru, díky moc :) Už jsem se odpíchnul a mám to hotové :)