Tfe

Ongi etorri tfe-ren webgunera...

2024-09-29-ean

Script bat irudi formatuak bihurtzeko

Gaur zerbait berria ikasi dut scripta sortzean:
sem kommandoa erabiliz tratamenduak modu paralleloan  sor ditzakegu.

Kasu honetan, jpg file guztiak aldatu  nahi ditut webp-ra, komando honekin:

$ cwebp -quiet "$ORIGINAL" -o "$NEWNAME" 

Hori lortzeko, script arrunt bat sor ditzaket, baina  oso motel izango da...:

#!/bin/bash

find . -name "*.jpg" | while read file
do
    NEWNAME=${file/.jpg/.webp}
    cwebp -quiet "$file" -o "$NEWNAME" && rm "$file"
done

Ezin ditut fixategiak bana-banan aldatu, ezta denak aldi-berean ere.
Arazo hau konpontzeko, semaphore bat erabiliko dugu, eta modu gardenean scriptak aldatuko ditu fitxategiak  10etik 10era:

$  sem -j 10 --semaphorename jpeg2webp '(cwebp -quiet "'$ORIGINAL'" -o "'$NEWNAME'" && rm "'$ORIGINAL'")'

Hemen:

  • -j 10 : 10etik 10era aldatuko ditugu fixategiak. ("10 jobs")
  •  --semaphorename jpeg2webp : gure semaphore-ari izena bat jartzen diogu

Script guztia:

#!/bin/bash

find . -name "*.jpg" | while read file
do
    NEWNAME=${file/.jpg/.webp}
    if [ -f "$NEWNAME" ]
    then
        echo "ALREADY EXISTING! $NEWNAME"
        rm "$file"
    else
        echo "Converting $file to $NEWNAME"
        sem -j 10 --semaphorename jpeg2webp '(cwebp -quiet "'$file'" -o "'$NEWNAME'" && rm "'$file'")'
    fi
done

echo "Script done."

Tags: Linux Script Euskera BASH