#!/bin/bash # script by mike@altlinux.ru to facilitate with # Ogg Vorbis tag converting/editing EDIT=0 OGGEDITOR=vim GUESS=0 FILTER=cat ICONVS="" # et ICONVS to "-s -c" to drop bad chars (with ALT iconv) [ "$*" = "" ] && { echo "USAGE:" >&2 echo "$0 -wu [oggfiles] to conv 1251->utf" >&2 echo "$0 -uw [oggfiles] to conv utf->1251" >&2 echo "$0 -e [oggfiles] to edit tags with ${EDITOR:=vim}" >&2 echo "$0 -g [oggfiles] to try to guess quickly tag charset" >&2 exit 0 } case $1 in -wu) FILTER="iconv -fcp1251 -tutf-8"; shift;; -uw) FILTER="iconv -futf-8 -tcp1251"; shift;; -ku) FILTER="iconv -fkoi8-u -tutf-8"; shift;; -uk) FILTER="iconv -futf-8 -tkoi8-u"; shift;; -wk) FILTER="iconv -fcp1251 -tkoi8-u"; shift;; -kw) FILTER="iconv -fkoi8-u -tcp1251"; shift;; -e) EDIT=1; shift;; -g) GUESS=1; shift;; esac for i in "$*"; do vorbiscomment -l "$i" \ | $FILTER > "$i.TAG" && { [ $GUESS = 1 ] && { grep -q "Ð.Ð.Ð" "$i.TAG" && \ echo "$i -- like UTF-8" || \ echo "$i -- like not UTF-8" } [ $EDIT = 1 ] && $OGGEDITOR "$i.TAG" vorbiscomment -w "$i" < "$i.TAG" } || { echo "WARNING! Some problems with \'$i\'," >&2 echo "******* examine \'$i.TAG\'!" >&2 echo "....... (orig file not modified)" >&2 exit 1 } done