Nachdem ich meine Aufnahmen etwas durcheinandergewürfelt habe, brauchte ich irgendetwas, was mir meine Aufnahmen wiederbringt. Da ich ungern Skripte auf etwas laufen lasse, die ich nicht verstehe, hab ich mir mein eigenes geschrieben.
Simulation:
# ./fix-recordings
Enter main video dir:/srv/vdr/video.00
Enter video dir to check:/srv/vdr/video.0[12]
Wirklich ausführen:
# ./fix-recordings action
Enter main video dir:/srv/vdr/video.00
Enter video dir to check:/srv/vdr/video.0[12]
Benutzung auf eigene Gefahr, ich check gra
Bash
#!/bin/bash
echo -n "Enter main video dir:"
read MAIN
echo -n "Enter video dir to check:"
read CHECK
CHECKDIRS=( `find $CHECK -name *.rec` )
for DIR in ${CHECKDIRS[@]}; do
MAINDIR=${DIR//$CHECK}
MAINDIR=$MAIN$MAINDIR
FILES=( `find $DIR/* -name 00*` )
for FILE in ${FILES[@]} ; do
LINK=`basename "$FILE"`
if [ ! -d $MAINDIR ]; then
echo ""
echo "DIR $MAINDIR"
[ "x$1" = "xaction" ] && mkdir -p "$MAINDIR"
fi
if [ ! -L "$MAINDIR/$LINK" ]; then
echo "LINK $MAINDIR/$LINK"
[ "x$1" = "xaction" ] && ln -s "$FILE" "$MAINDIR/$LINK"
else
if [ ! -e "$MAINDIR/$LINK" ]; then
echo "FIXLINK $MAINDIR/$LINK"
[ "x$1" = "xaction" ] && rm "$MAINDIR/$LINK"
[ "x$1" = "xaction" ] && ln -s "$FILE" "$MAINDIR/$LINK"
fi
fi
done
done # DIR LOOP
Alles anzeigen
Nun fehlt mir nur noch ein Skript um das Encoding der Aufnahmeverzeichnisse zu ändern.
Das bringt aber leider:
Code
1.) /srv/vdr/video.00/Filme/Frýulein_Smillas_Gespýr_fýr_Schnee/2006-12-16.20.13.50.99.rec
2.) /srv/vdr/video.00/Filme/Fräulein_Smillas_Gespür_für_Schnee/2006-12-16.20.13.50.99.rec
Choose correct encoding:2
Rename to /srv/vdr/video.00/Filme/Fräulein_Smillas_Gespür_für_Schnee/2006-12-16.20.13.50.99.rec
mv: cannot move `/srv/vdr/video.00/Filme/Fr\344ulein_Smillas_Gesp\374r_f\374r_Schnee/2006-12-16.20.13.50.99.rec' to `/srv/vdr/video.00/Filme/Fr\303\244ulein_Smillas_Gesp\303\274r_f\303\274r_Schnee/2006-12-16.20.13.50.99.rec': No such file or directory
Bash
#!/bin/bash
echo -n "Enter video dir wildcard to check:"
read CHECK
CHECKDIRS=( `find $CHECK -name *.rec` )
for DIR in ${CHECKDIRS[@]}; do
DIRTRANS="`echo $DIR | iconv -f ISO8859-15 -t UTF-8`"
if [ "$DIR" != "$DIRTRANS" ]; then
echo "1.) $DIR"
echo "2.) $DIRTRANS"
if [ "x$1" = "xaction" ]; then
while /bin/true ; do
echo -n "Choose correct encoding:"
read ENCOD
case $ENCOD in
1) RENAMEDIR=$DIR
break
;;
2) RENAMEDIR=$DIRTRANS
break
;;
*) echo "wrong choice"
;;
esac
done
LANG=de_DE.iso8859-15
export LANG
if [ "x$DIR" != "x$RENAMEDIR" ] && [ -n "$DIR" ] && [ -n "$RENAMEDIR" ] ; then
echo "Rename to $RENAMEDIR"
[ "x$1" = "xaction" ] && mv $DIR $RENAMEDIR
fi
fi # action ?
fi # different ?
done # DIR LOOP
Alles anzeigen