Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: rationaalinen - 07.08.09 - klo:15.42
-
Morjens foorumilaiset!
Tarkoituksenani on automatisoida kansiossa olevien kuvien pakkaus. Saan pakattua kansiossa olevat kuvat convertin avulla seuraavalla bash scriptillä:
#!/bin/sh
for i in *.JPG; do convert -quality 30 "$i" "$i.jpeg"; done
Nyt kaikista kansiossa olevista JPG-kuvista luodaan pakattu versio, jonka nimeksi tulee *.JPG.jpeg.
Miten saisin tallennettua JPG kuvien nimet bash scriptin muuttujaan ja poistettua merkkijonosta *.JPG-päätteen siten että *.JPG-kuvan pakatun version nimeksi tulisi esim. *-compressed.jpeg?
Hitaampi keino olisi käydä kansion *.JPG.jpeg-tiedostot läpi toisella for-loopilla ja uudelleen nimetä (rename) ne *.jpeg:ksi.
t: Rationaalinen
-
Ymmärsinkö nyt oikein?
for i in *.JPG; do
convert -quality 30 "$i" "${i%.JPG}-compressed.jpeg"
done
-
Morjens,
oikein meni.
Tein vielä pienen lisäyksen:
#!/bin/sh
mkdir $PWD/compressed
for i in *.JPG; do convert -limit memory 100mb -quality 30 $i $PWD/compressed/"${i/.JPG}-compressed".jpeg; done
nykyiseen kansioon luodaan "compressed"-niminen alikansio, johon kaikki *.JPG kuvat pakataan.
Kiitos!
t: Rationaalinen
-
mkdir $PWD/compressed
Skripteissä on parempi käyttää muotoa
mkdir -p hakemistopolku