File: fix-songfiles.sh

package info (click to toggle)
performous 1.1%2Bgit20181118-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 11,736 kB
  • sloc: cpp: 30,008; ansic: 2,751; sh: 801; xml: 464; python: 374; makefile: 36
file content (41 lines) | stat: -rwxr-xr-x 1,026 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#/bin/sh
# this script converts cp1252(windows) filenames+texts to utf8 and fixes wrong .mp3 filenames
# usage ./fix-files.sh [songdir]

cd "$1"

function fenc {
 convmv -f cp1252 -t utf8 --notest ./*
 echo '- converted filenames to utf8'
}

function textenc {
 find ./ | grep ".txt" | grep -v .cp1252 | while read txts; do
  if [ -f "$txts.cp1252" ];
  then
   echo "- '$txts.cp1252' exists. skipping.."
  else
   mv "$txts" "$txts.cp1252"
   iconv --from-code=ISO-8859-1 --to-code=UTF-8 "$txts.cp1252" > "$txts"
   dos2unix "$txts"
   echo "- converted $txts to utf8 and created backup $txts.cp1252"
 fi
 done
}

function mp3name {
 txt=`find ./ | grep - | grep .txt | grep -v .txt.`
 mp3name=`cat "$txt" | grep MP3 | sed -e s/#MP3:// -e s/"\r"//g`
 oldfile=`find ./ | grep - | grep -i .mp3`
  if [ -f "$mp3name" ];
  then
   echo "- '$mp3name already exists'. check usng log for errors if you still can't select it"
  else
   mv "$oldfile" "$mp3name"
   echo "- moved '$oldfile' to '$mp3name'"
  fi
}

fenc
textenc
mp3name