Add metaflac-field2field.sh
Field to field operations (copy, move) in FLAC metadatas. ++++ Script pour faire des opérations de champ à champ (copie, déplacement) sur des fichiers FLAC.
This commit is contained in:
commit
d44b9b1039
|
@ -0,0 +1,61 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Utilise metaflac pour effectuer des actions de copie ou déplacement de champ à champ sur les fichiers FLAC.
|
||||||
|
# Lancer ce script sans argument pour afficher son utilisation.
|
||||||
|
|
||||||
|
print_usage()
|
||||||
|
{
|
||||||
|
echo "Utilisation :"
|
||||||
|
echo " $0 <ACTION> <SRC_FIELD> <DST_FIELD> <FILE.flac> [ <FILE2.flac> [...] ]"
|
||||||
|
echo "ACTION : copy | move | rmcopy | mvcopy"
|
||||||
|
echo " copy : chaque occurrence de SRC_FIELD est dupliquée pour créer une occurrence de DST_FIELD ; toutes les occurrences existantes de SRC_FIELD et de DST_FIELD sont conservées."
|
||||||
|
echo " move : chaque occurrence de SRC_FIELD est déplacée pour créer une occurrence de DST_FIELD ; les occurrences existantes de DST_FIELD sont conservées."
|
||||||
|
echo " rmcopy : les occurrences existantes de DST_FIELD sont supprimées, puis chaque occurrence de SRC_FIELD est dupliquée pour créer une occurrence de DST_FIELD ; les occurrences de SRC_FIELD sont conservées."
|
||||||
|
echo " rmmove : les occurrences existantes de DST_FIELD sont supprimées, puis chaque occurrence de SRC_FIELD est déplacée pour créer une occurrence de DST_FIELD."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Bon nombre d'arguments ?
|
||||||
|
if [ $# -lt 4 ] ; then
|
||||||
|
echo "Mauvais nombre d'arguments !"
|
||||||
|
print_usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
ACTION=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
# Type d'action connue ?
|
||||||
|
case $ACTION in
|
||||||
|
copy) ;;
|
||||||
|
move) ;;
|
||||||
|
rmcopy) ;;
|
||||||
|
rmmove) ;;
|
||||||
|
*) echo "Action inconnue !" ; print_usage ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
SRC_FIELD=$1
|
||||||
|
shift
|
||||||
|
DST_FIELD=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
echo "Champ source : $SRC_FIELD"
|
||||||
|
echo "Champ destination : $DST_FIELD"
|
||||||
|
echo "Action : $ACTION"
|
||||||
|
|
||||||
|
echo "Traitement des fichiers..."
|
||||||
|
|
||||||
|
if echo $ACTION | egrep '^rm' >/dev/null ; then
|
||||||
|
echo "Suppression du champ $DST_FIELD sur tous les fichiers..."
|
||||||
|
metaflac --remove-tag=$DST_FIELD "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for file in "$@" ; do
|
||||||
|
echo "Fichier : $file"
|
||||||
|
metaflac --show-tag=$SRC_FIELD "$file" | sed 's/^[A-Z]\+=//' | while read c1 ; do
|
||||||
|
metaflac --set-tag=$DST_FIELD="$c1" "$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if echo $ACTION | egrep 'move$' >/dev/null ; then
|
||||||
|
echo "Suppression du champ $SRC_FIELD sur tous les fichiers..."
|
||||||
|
metaflac --remove-tag=$SRC_FIELD "$@"
|
||||||
|
fi
|
Loading…
Reference in New Issue