Jump to content
Sign in to follow this  
Lufthummel

Bash Script zu Umbenennung der LR 7.3 Profile

Recommended Posts

Werbung (verschwindet nach Registrierung)

Wer für LR 7.3 Profile erstellt ärgert sich bestimmt darüber dass die Sortierung/Namensgebung nicht mehr über den Dateinamen sondern im XML vorgegeben wird. Vor allem wenn man nach der Profilerstellung feststellt dass man es doch lieber anders möchte. Daher habe ich ein kleines Script für den Mac geschrieben.

 

Voraussetzung: xmlstarlet ist installiert

brew install xmlstarlet

Das folgende Script in eine Datei mit Endung sh kopieren

#!/bin/bash
# change name and groups in Adobe XMP files for Lightroom

#XPATHS expressions
NAMEPATH=/x:xmpmeta/rdf:RDF/rdf:Description/crs:Name/rdf:Alt/rdf:li
GROUPPATH=/x:xmpmeta/rdf:RDF/rdf:Description/crs:Group/rdf:Alt/rdf:li
XPREFIX=y=\"adobe:ns:meta/\"
RDFPREFIX=rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
CRSPREFIX=crs=\"http://ns.adobe.com/camera-raw-settings/1.0/\"

#check for xmlstarlet
if ! [ -x "$(command -v xmlstarlet)" ]; then
  echo 'Error: xmlstarlet is not installed or in path.' >&2
  exit 1
fi


# check if all arguments are given 
if [ $# -lt 3 ]
  then
    echo "Not all arguments supplied - NewName, NewGroup, Filename"
    exit 1
  else
    NewName="'$1'"
    shift
    NewGroup="'$1'"
    shift
fi


for i
    do
    echo $i
        #change name of profile
        if [ "$NewName" != "-g" ] #otherwise change groupname only
            then
                eval xmlstarlet ed  -L -N $XPREFIX -N $RDFPREFIX -N $CRSPREFIX -u $NAMEPATH  -v $NewName "'$i'"

                if [ $? -eq 0 ]; then
                    echo succesfully changed name of $i
                else
                    echo FAILED changing name of Profile
                    exit 1
                fi
        fi
        #change group
        
        eval xmlstarlet ed -L -N $XPREFIX -N $RDFPREFIX -N $CRSPREFIX -u $GROUPPATH  -v $NewGroup "'$i'"

        if [ $? -eq 0 ]; then
            echo succesfully changed group name of $i
        else
            echo FAILED changing group name of Profile
            exit 1
        fi
        
    done

echo Finished

Ausführbar machen

chmod u+x scriptname.sh

Parameter: NewName NewGroup FileName

./rename_xmp.sh 'Hammer Profil4' 'Hammer Gruppe4' Astia4.xmp 

Bei Leerzeichen in der Bezeichnung Quotes nicht vergessen!

 

Oder nur Gruppenname:

./rename_xmp.sh -g 'Tolle Gruppe' *.xmp 

In dem Fall bekommen alle XMP Profile die gleiche Gruppe zugewiesen

 

Bitte vorher Kopien von den Profilen machen, wie immer alles ohne Gewähr!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...