Jump to content

Bash Script zu Umbenennung der LR 7.3 Profile


Empfohlene Beiträge

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!

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...