Bash/Terminal: loop über jpg-Files

Dieses Thema im Forum "Software" wurde erstellt von WernerBeinhart, 27. September 2007.

  1. WernerBeinhart

    WernerBeinhart New Member

    Hallo Leute,

    ich möchte mit dem ImageMagick über alle *.jpg Files inkl. aller Subdirectories loopen
    Beim Windows funktioniert das in etwa so:
    FOR /R %%f IN (*.jpg) DO convert %%f -resize x512 %%f

    Leider bin ich etwas neu in der Mac-Welt:
    Im Moment sieht das Bash-Script so aus:
    for file in `ls`; do
    if [ -f $file ]; then
    echo $file
    convert $file -resize x512 $file
    fi
    done

    Meine Fragen:
    - Wie kann ich Datei-Endungen (z.B. nur jpg) mittels "if" feststellen?
    - Wie kann ich rekursiv durch Unterverzeichnisse loopen?

    Grüsse und Danke,

    Werner
     
  2. Convenant

    Convenant Haarfestiger

  3. WernerBeinhart

    WernerBeinhart New Member

    Hi Convenant ,

    danke für die rasche Hilfe -bin fündig geworden.
    So geht's:
    for file in `find . | grep -i '\.jpg$'`; do
    echo $file ": resize to a maximum of 512x521 pixel"
    convert $file -resize x512 $file
    done

    Grüsse

    Werner
     
  4. Convenant

    Convenant Haarfestiger

    Wow! Ich bin sicher, dass sich jeder Scripter nun freut. Ich hingegen seh' nur Sonderzeichen – freu’ mich aber natürlich auch, dass es geklappt hat.

    Solltest du mal Fragen im Bereich der Druckvorstufe haben, so zögere nicht diese mir zu stellen, damit auch ich mich mal klug fühlen kann.

    :D
     
  5. nikitelli

    nikitelli New Member

    alternativ müßte auch gehen

    for file in `ls *jpg`; do
    ...

    oder?
     

Diese Seite empfehlen