版主: mufa
#!/bin/sh
function conv
{
TARGETSONG="$1"
id3v2 -R "$TARGETSONG" >/tmp/id3conv.sh.tmp
ID3V1_TITLE=$(cat /tmp/id3conv.sh.tmp|head -4|tail -3|head -1|tail -1|cut -c10-41|autogb -o big5|autogb -o utf8|tr -s ' ' ' ')
ID3V1_ARTIST=$(cat /tmp/id3conv.sh.tmp|head -4|tail -3|head -1|tail -1|cut -c49- |autogb -o big5|autogb -o utf8|tr -s ' ' ' ')
ID3V1_ALBUM=$(cat /tmp/id3conv.sh.tmp|head -4|tail -3|head -2|tail -1|cut -c10-41|autogb -o big5|autogb -o utf8|tr -s ' ' ' ')
ID3V1_COMMENT=$(cat /tmp/id3conv.sh.tmp|head -4|tail -3|head -3|tail -1|cut -c10-41|autogb -o big5|autogb -o utf8|tr -s ' ' ' ')
ID3V2_TALB=$(cat /tmp/id3conv.sh.tmp|grep TALB|cut -c32-|autogb -o big5|autogb -o utf8)
ID3V2_TPE1=$(cat /tmp/id3conv.sh.tmp|grep TPE1|cut -c38-|autogb -o big5|autogb -o utf8)
ID3V2_TIT2=$(cat /tmp/id3conv.sh.tmp|grep TIT2|cut -c44-|autogb -o big5|autogb -o utf8)
ID3V2_TCON=$(cat /tmp/id3conv.sh.tmp|grep TCON|cut -c22-|cut -d " " -f1|autogb -o big5|autogb -o utf8)
ID3V2_COMM=$(cat /tmp/id3conv.sh.tmp|grep COMM|cut -c24-|autogb -o big5|autogb -o utf8)
ID3V1_TITLE=${ID3V1_TITLE##\ }
ID3V1_ARTIST=${ID3V1_ARTIST##\ }
ID3V1_ALBUM=${ID3V1_ALBUM##\ }
ID3V1_COMMENT=${ID3V1_COMMENT##\ }
ID3V2_TALB=${ID3V2_TALB##\ }
ID3V2_TPE1=${ID3V2_TPE1##\ }
ID3V2_TIT2=${ID3V2_TIT2##\ }
ID3V2_TCON=${ID3V2_TCON##\ }
ID3V2_COMM=${ID3V2_COMM##\ }
ID3V1_TITLE=${ID3V1_TITLE%\ }
ID3V1_ARTIST=${ID3V1_ARTIST%\ }
ID3V1_ALBUM=${ID3V1_ALBUM%\ }
ID3V1_COMMENT=${ID3V1_COMMENT%\ }
ID3V2_TALB=${ID3V2_TALB%\ }
ID3V2_TPE1=${ID3V2_TPE1%\ }
ID3V2_TIT2=${ID3V2_TIT2%\ }
ID3V2_TCON=${ID3V2_TCON%\ }
ID3V2_COMM=${ID3V2_COMM%\ }
id3v2 --artist "$ID3V1_ARTIST" --album "$ID3V1_ALBUM" --song "$ID3V1_TITLE" --comment "":"$ID3V1_COMMENT":"" $TARGETSONG
id3v2 --TPE1 "$ID3V2_TPE1" --TALB "$ID3V2_TALB" --TIT2 "$ID3V2_TIT2" --COMM "$ID3V2_COMM" --TCON "$ID3V2_TCON" $TARGETSONG
}
function shinfo
{
echo "Usage: $SHNAME file1|path1 [file2|path2]... "
}
declare -i NOMS=$#
SHNAME=$0
SHNAME=${SHNAME##*/}
if [ $NOMS -eq 0 ];then
shinfo
else
while [ $NOMS -gt 0 ];do
if [ -d "$1" ]; then
IFS=":"
for abc in $(find "$1" -name *.[Mm][Pp]3|tr -s "\n" ":") ;do
conv "$abc"
done
elif [ -f "$1" ]; then
conv "$1"
else
echo "$1 does not exist!"
fi
NOMS=$NOMS-1
shift
done
fi
Anonymous 寫:把你喜歡的 database dump 出來用 sed 轉就好了 XD
前陣子 gcin 同好會有人整理了一份繁轉簡單字對照,bug "據說"比 zh-autoconvert / iconv 少一點。
http://cle.linux.org.tw/trac/discussion/2/352
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客