Kirjoittaja Aihe: Bash: Tiedostojen uudelleen nimeäminen  (Luettu 2027 kertaa)

rationaalinen

  • Käyttäjä
  • Viestejä: 67
    • Profiili
Bash: Tiedostojen uudelleen nimeäminen
« : 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

SuperOscar

  • Käyttäjä
  • Viestejä: 4002
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Bash: Tiedostojen uudelleen nimeäminen
« Vastaus #1 : 07.08.09 - klo:15.52 »
Ymmärsinkö nyt oikein?

Koodia: [Valitse]
for i in *.JPG; do
    convert -quality 30 "$i" "${i%.JPG}-compressed.jpeg"
done
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

rationaalinen

  • Käyttäjä
  • Viestejä: 67
    • Profiili
Vs: Bash: Tiedostojen uudelleen nimeäminen
« Vastaus #2 : 07.08.09 - klo:16.30 »
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

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Bash: Tiedostojen uudelleen nimeäminen
« Vastaus #3 : 07.08.09 - klo:18.51 »
mkdir $PWD/compressed

Skripteissä on parempi käyttää muotoa
Koodia: [Valitse]
mkdir -p hakemistopolku