Index

"mp3 Erstellung per Skript"

cd2mp3.sh - MP3 mit CDDB tagen

Das tagen von mp3-Dateien ist immer wieder zeitaufwendig, deshalb lässt man das alles von einem Skript gleich beim Konvertieren erledigen. Durch die CDDB-Abfrage über die Internetverbindung sollten dann eigentlich alle Dateien den richtigen Tag besitzen, nur das Erscheinungsjahr (-year=?) und die Repräsentation des CD-ROM-Laufwerks im Dateisystem (-cddev=?) müssen noch angegeben werden. Dieses Skript benutzt LAME, id3tag, cdda2wav und list_audio_tracks (bei cdda2wav dabei):

Änderungen in den Skripten bitte Kommentieren!

cd2mp3.sh:

# Aus den Optionen Variablen machen:
for i in $@ ; do
   gr=$(echo $1 | sed -e 's/\-//g' | cut -d'=' -f1)
   declare $gr=$(echo $1 |  cut -d'=' -f2)
   shift
done

## Konfiguration: ##
#  ^^^^^^^^^^^^^   #

# Ordner in dem die mp3 gespeichert werden:
MP3DIR=$HOME/Musik
# Device des CD-ROM-Laufwerks:
[ $cddev ] || cddev=/dev/cdrom
# Reihenfolge der Titelteile für den mp3-Namen (ohne Leer- & Sonderzeichen):
MP3NAME=$ALBUM-$TRACK-$TITLE # $ARTIST $GENRE $year
# Die Programme und ihre Optionen:
CDDA2WAV=cdda2wav
MP_CODER=lame
CDDA2WAV_OPTS="-D $cddev -H -P0 -q"
MP_OPTIONS="-v"  # -v = Variable Bitrate -> ohne ist es schneller, aber schlechtere Qualität

# evtl. /usr/lib/X11/xmcd/config/config.sh vorher ausführen.

## Ab hier gibt es eigentlich nichts mehr zu konfigurieren: ##
#                              ^^^^^^         ^^^^^^^^^^^^^   #

# Usage anzeigen bei Fehler oder Ctl-C:
sorry()
{
  echo -e "\n Usage: $0 [ -cddev=/dev/ice ] [ -year=#### ]" ; exit
}
trap sorry 1 2 3 15 INT

# CDDB-Eintrag mit cda (xmcd-pakage) holen:
echo -e "\033[33;1;40mGet CDDB-entry....\033[m"
cda -dev $cddev on >/dev/null 2>&1
TOCFILE=$(cda -dev $cddev toc | sed -e s/\`/\'/g -e 's/[;:*#?|><\"\$!]//g')
cda -dev $cddev toc | sed -e s/\`/\'/g -e 's/[;:*#?|><\"\$!]//g' -e 's/\//-/g'
cda -dev $cddev off >/dev/null 2>&1
# Abbrechen und meckern, wenn cda nicht funktioniert:
if [ $? != 0 ] ; then
echo "/usr/lib/X11/xmcd/config/$(echo $cddev | cut -d'/' -f3)\
 missing -> pleas run /usr/lib/X11/xmcd/config/config.sh"
exit 1
fi
# Abfrage der zu konvertierenden Tracks:
echo -en "\nWhich Title should be converted\nfor all just press ENTER: "
read TRACKS
sleep 2
# Den CDDB-Eintrag in Variablen quetschen:
GENRES=$(echo "$TOCFILE" | grep "^Genre" | cut -d' ' -f2)
GENRE=$(echo "$GENRES" | tr '[:upper:]' '[:lower:]')
# Wird noch erweitert... (nur einträge ohne Sonderzeichen und Leerzeichen)
case "$GENRE" in
            blues)              GENRE=0; ;;     # Blues
            classical)          GENRE=32; ;;    # Classical
            country)            GENRE=2; ;;     # Country
            folk)               GENRE=80; ;;    # Folk
            jazz)               GENRE=8; ;;     # Jazz
            newage)             GENRE=10; ;;    # Newage
            reggae)             GENRE=16; ;;    # Reggae
            rock)               GENRE=17; ;;    # Rock
            soundtrack)         GENRE=24; ;;    # Soundtrack
            oldies)             GENRE=11; ;;    # Oldies
            pop)                GENRE=13; ;;    # Pop
            r\&b)               GENRE=14; ;;    # R&B
            rap)                GENRE=15; ;;    # Rap
            vocal)              GENRE=28; ;;    # Vocal
            punk)               GENRE=43; ;;    # Punk
            speech)             GENRE=101; ;;   # Speech
            chanson)            GENRE=102; ;;   # Chanson
            *)                  GENRE=12        # Other
                                GENRES=Other
echo -e "\t\033[31;1;40mWarning:\033[m Genre not found in CDDB-File -> set it to \"Other\"!"; ;;
        esac
ARTIST=$(echo "$TOCFILE" | sed 4p -n | cut -d'/' -f1 |\
 sed -e 's/\ /_/g' -e 's/_$//g' -e 's/\//-/g')
[ $ARTIST = '(unknown_title)' ] && ARTIST=$$
ALBUM=$(echo "$TOCFILE" | sed 4p -n | cut -d'/' -f2 |\
 sed -e 's/^\ //g' -e 's/\ /_/g' -e 's/\//-/g' )
[ $ALBUM = '(unknown_title)' ] && ALBUM=$$
[ $TRACKS ] || TRACKS=$(list_audio_tracks -D $cddev | cut -f1)
# Erstellen der Unterferzeichnise:
mkdir -p $MP3DIR/$GENRES/$ARTIST
echo
# Nun ist es soweit -> Konvertierung wird gestartet:
for TRACK in $TRACKS ; do
let "LINE = 5 + $(echo $TRACK | sed -e 's/^0//g')"
TITLE=$(echo "$TOCFILE" | sed "$LINE"p -n |\
 sed -e 's/^.*[[:blank:]][[:blank:]]//g' -e 's/\ /_/g' -e 's/?//g' -e 's/\//-/g')
[ $TITLE ] || TITLE=Unknown
echo -e "\033[33;1;40mStart Encoding\
 Track-$TRACK to $MP3NAME.mp3....\033[m"
time $CDDA2WAV $CDDA2WAV_OPTS -t$TRACK $DEBUG - |\
 $MP_CODER $MP_OPTIONS\
 --tt "$(echo $TITLE | sed -e 's/_/\ /g')"\
 --ta "$(echo $ARTIST | sed -e 's/_/\ /g')"\
 --tl "$(echo $ALBUM | sed -e 's/_/\ /g')"\
 --tn "$TRACK"\
 --tg "$GENRE"\
 --tc "LAME-Encoded by Uli's cd2mp3"\
 --ty "$year"\
 - $MP3DIR/$GENRES/$ARTIST/$MP3NAME.mp3
if [ $? != 0 ] ; then
exit 1
fi
# Bestätigung das alles funktioniert hat:
echo -e "File \033[33;1;40m$MP3NAME.mp3\033[m successfully created.\n"
# M3U-File erstellen:
echo "./$MP3NAME.mp3" >>\
 $MP3DIR/$GENRES/$ARTIST/$ALBUM-00.m3u
done

Audio-CD ohne CDDB eintrag mit Tag versehen oder bestehende MP3-Datei mit Tag versehen

Sollte die CD nicht in CDDB geführt werden, dann hilft vieleicht dieses unfertige Skript weiter. Es benutzt LAME, id3tag, cdda2wav und list_audio_tracks (bei cdda2wav dabei) wie cd2mp3.sh, erwartet aber für jedes Musikstück entweder Optionen oder verlangt interaktiv nach den entsprechenden Eingaben. track2mp3 mit symbolischer Verknüpfung zu mp3tager oder umbekehrt.
Die Optionen die angegeben werden können sind:

[ -cddev=/dev/ice ] [ -artist=Artist ] [ -album=Album ] [ -tracknumber=Nr. ] [ -genre=GenreNr. ] [ -year=Year ] [ -title=Title ]

Wird eine Option nicht angegeben wird diese interaktiv Erfragt.

Änderungen in den Skripten bitte Kommentieren!

# Wer bin ich? (track2mp3 oder mp3tager?)
SKRIPT=$(echo $0 | sed "s/^.*\/\([^\\]*\)/\1/")

# Aus den Optionen Variablen machen:
for i in $@ ; do
   gr=$(echo $1 | sed -e 's/\-//g' | cut -d'=' -f1)
   declare $gr=$(echo $1 |  cut -d'=' -f2)
   shift
done
# Ordner in dem die mp3 gespeichert werden:
MP3DIR=$HOME/public_html/shared/Musik
[ $cddev ] || cddev=/dev/cdrom
CDDA2WAV=cdda2wav
MP_CODER=lame
CDDA2WAV_OPTS="-D $cddev -H -P0 -q"
MP_OPTIONS="-v"

## Ab hier giebt es eigentlich nichts mehr zu konfigurieren: ##
#                              ^^^^^^         ^^^^^^^^^^^^^   #

# Usage anzeigen bei Fehler oder Ctl-C:
sorry()
{
  echo -e "\n Usage: $0 [ -cddev=/dev/ice ]\
 [ -artist=Artist ]\
 [ -album=Album ]\n\
 [ -title=Title ]\
 [ -tracknumber=Nr. ]\
 [ -genre=GenreNr. ]\
 [ -year=Year ]\n" ; exit
}
trap sorry 1 2 3 15 INT

# Ah, ich wurde als track2mp3 aufgerufen, also Audio Tracks auflisten
# und meckern wenn keine CD da ist:
if [ $SKRIPT = track2mp3 ] ; then
echo -e "\n\033[33;1;40mAbfrage für id3tag:\033[m\n\
~~~~~~~~~~~~~~~~~~~"
list_audio_tracks -D $cddev 2>/dev/null
if [ $? != 0 ] ; then
echo -e "\033[31;1;40mKeine CD in $cddev gefunden!\n\033[m"
exit 1
fi
fi
# Kontrolieren ob die Option schon gesetzt ist, wennn nicht Fragen:
[ $tracknumber ] || echo -en "Track-Nr.: "
[ $tracknumber ] && echo "Track-Nr.: $tracknumber"
[ $tracknumber ] || read "tracknumber"

[ $title ] || echo -en "Titel: "
[ $title ] && echo "Titel: $title"
[ $title ] || read "title"

[ $artist ] || echo -en "Interpret: "
[ $artist ] && echo "Interpret: $artist"
[ $artist ] || read "artist"

[ $album ] || echo -en "Album: "
[ $album ] && echo "Album: $album"
[ $album ] || read "album"
# Harte Arbeit (zum Glück giebt's sed):
[ $genre ] || echo -en "Soll die Genre Liste angezeigt werden um die Nr. heraus zu finden? [ Y / n ]: "
[ $genre ] || read "yesno"
[ $genre ] || if [ -z "$yesno" -o _"$yesno" = _Y -o _"$yesno"_ = _y_ ] ; then
echo -e "123 A Cappella             34 Acid                      74 Acid Jazz\n\
 73 Acid Punk               99 Acoustic                  20 Alternative\n\
 40 Alt. Rock               26 Ambient                  145 Anime\n\
 90 Avantgarde             116 Ballad                    41 Bass\n\
135 Beat                    85 Bebob                     96 Big Band\n\
138 Black Metal             89 Bluegrass                  0 Blues\n\
107 Booty Bass             132 BritPop                   65 Cabaret\n\
 88 Celtic                 104 Chamber Music            102 Chanson\n\
 97 Chorus                 136 Christian Gangsta Rap     61 Christian Rap\n\
141 Christian Rock          32 Classical                  1 Classic Rock\n\
112 Club                   128 Club-House                57 Comedy\n\
140 Contemporary Christian   2 Country                  139 Crossover
 58 Cult                     3 Dance                    125 Dance Hall\n\
 50 Darkwave                22 Death Metal                4 Disco\n\
 55 Dream                  127 Drum & Bass              122 Drum Solo\n\
120 Duet                    98 Easy Listening            52 Electronic\n\
 48 Ethnic                  54 Eurodance                124 Euro-House\n\
 25 Euro-Techno             84 Fast-Fusion               80 Folk\n\
115 Folklore                81 Folk/Rock                119 Freestyle\n\
  5 Funk                    30 Fusion                    36 Game\n\
 59 Gangsta Rap            126 Goa                       38 Gospel\n\
 49 Gothic                  91 Gothic Rock                6 Grunge\n\
129 Hardcore                79 Hard Rock                137 Heavy Metal\n\
  7 Hip-Hop                 35 House                    100 Humour\n\
131 Indie                   19 Industrial                33 Instrumental\n\
 46 Instrumental Pop        47 Instrumental Rock          8 Jazz\n\
 29 Jazz+Funk              146 JPop                      63 Jungle\n\
 86 Latin                   71 Lo-Fi                     45 Meditative\n\
142 Merengue                 9 Metal                     77 Musical\n\
 82 National Folk           64 Native American          133 Negerpunk\n\
 10 New Age                 66 New Wave                  39 Noise\n\
 11 Oldies                 103 Opera                     12 Other\n\
 75 Polka                  134 Polsk Punk                13 Pop\n\
 53 Pop-Folk                62 Pop/Funk                 109 Porn Groove\n\
117 Power Ballad            23 Pranks                   108 Primus\n\
 92 Progressive Rock        67 Psychedelic               93 Psychedelic Rock\n\
 43 Punk                   121 Punk Rock                 15 Rap\n\
 68 Rave                   14 R&B                        16 Reggae\n\
 76 Retro                   87 Revival                  118 Rhythmic Soul\n\
 17 Rock                    78 Rock & Roll              143 Salsa\n\
114 Samba                  110 Satire                    69 Showtunes\n\
 21 Ska                    111 Slow Jam                  95 Slow Rock\n\
105 Sonata                  42 Soul                      37 Sound Clip\n\
 24 Soundtrack              56 Southern Rock             44 Space\n\
101 Speech                  83 Swing                     94 Symphonic Rock\n\
106 Symphony               147 Synthpop                 113 Tango\n\
 18 Techno                 51 Techno-Industrial         130 Terror\n\
144 Thrash Metal           60 Top 40                     70 Trailer\n\
 31 Trance                 72 Tribal                     27 Trip-Hop\n\
 28 Vocal\n\
                        Hit Q to quit!" | less
fi
[ $genre ] || echo -en "Genre-Nr.: "
[ $genre ] && echo -en "Genre-Nr.: $genre "
[ $genre ] || read "genre"
case "$genre" in
00) GENRE="Blues"; ;;
01) GENRE="Classic_Rock"; ;;
02) GENRE="Country"; ;;
03) GENRE="Dance"; ;;
04) GENRE="Disco"; ;;
05) GENRE="Funk"; ;;
06) GENRE="Grunge"; ;;
07) GENRE="Hip-Hop"; ;;
08) GENRE="Jazz"; ;;
09) GENRE="Metal"; ;;
10) GENRE="New_Age"; ;;
11) GENRE="Oldies"; ;;
12) GENRE="Other"; ;;
13) GENRE="Pop"; ;;
14) GENRE="R&B"; ;;
15) GENRE="Rap"; ;;
16) GENRE="Reggae"; ;;
17) GENRE="Rock"; ;;
18) GENRE="Techno"; ;;
19) GENRE="Industrial"; ;;
20) GENRE="Alternative"; ;;
21) GENRE="Ska"; ;;
22) GENRE="Death_Metal"; ;;
23) GENRE="Pranks"; ;;
24) GENRE="Soundtrack"; ;;
25) GENRE="Euro-Techno"; ;;
26) GENRE="Ambient"; ;;
27) GENRE="Trip-Hop"; ;;
28) GENRE="Vocal"; ;;
29) GENRE="Jazz+Funk"; ;;
30) GENRE="Fusion"; ;;
31) GENRE="Trance"; ;;
32) GENRE="Classical"; ;;
33) GENRE="Instrumental"; ;;
34) GENRE="Acid"; ;;
35) GENRE="House"; ;;
36) GENRE="Game"; ;;
37) GENRE="Sound_Clip"; ;;
38) GENRE="Gospel"; ;;
39) GENRE="Noise"; ;;
40) GENRE="Alternative_Rock"; ;;
41) GENRE="Bass"; ;;
43) GENRE="Punk"; ;;
44) GENRE="Space"; ;;
45) GENRE="Meditative"; ;;
46) GENRE="Instrumental_Pop"; ;;
47) GENRE="Instrumental_Rock"; ;;
48) GENRE="Ethnic"; ;;
49) GENRE="Gothic"; ;;
50) GENRE="Darkwave"; ;;
51) GENRE="Techno-Industrial"; ;;
52) GENRE="Electronic"; ;;
53) GENRE="Pop-Folk"; ;;
54) GENRE="Eurodance"; ;;
55) GENRE="Dream"; ;;
56) GENRE="Southern_Rock"; ;;
57) GENRE="Comedy"; ;;
58) GENRE="Cult"; ;;
59) GENRE="Gangsta"; ;;
60) GENRE="Top_40"; ;;
61) GENRE="Christian_Rap"; ;;
62) GENRE="Pop/Funk"; ;;
63) GENRE="Jungle"; ;;
64) GENRE="Native_US"; ;;
65) GENRE="Cabaret"; ;;
66) GENRE="New_Wave"; ;;
67) GENRE="Psychadelic"; ;;
68) GENRE="Rave"; ;;
69) GENRE="Showtunes"; ;;
70) GENRE="Trailer"; ;;
71) GENRE="Lo-Fi"; ;;
72) GENRE="Tribal"; ;;
73) GENRE="Acid_Punk"; ;;
74) GENRE="Acid_Jazz"; ;;
75) GENRE="Polka"; ;;
76) GENRE="Retro"; ;;
77) GENRE="Musical"; ;;
78) GENRE="Rock_&_Roll"; ;;
79) GENRE="Hard_Rock"; ;;
80) GENRE="Folk"; ;;
81) GENRE="Folk-Rock"; ;;
82) GENRE="National_Folk"; ;;
83) GENRE="Swing"; ;;
84) GENRE="Fast_Fusion"; ;;
85) GENRE="Bebob"; ;;
86) GENRE="Latin"; ;;
87) GENRE="Revival"; ;;
88) GENRE="Celtic"; ;;
89) GENRE="Bluegrass"; ;;
90) GENRE="Avantgarde"; ;;
91) GENRE="Gothic_Rock"; ;;
92) GENRE="Progressive_Rock"; ;;
93) GENRE="Psychedelic_Rock"; ;;
94) GENRE="Symphonic_Rock"; ;;
95) GENRE="Slow_Rock"; ;;
96) GENRE="Big_Band"; ;;
97) GENRE="Chorus"; ;;
98) GENRE="Easy_Listening"; ;;
99) GENRE="Acoustic"; ;;
100) GENRE="Humour"; ;;
101) GENRE="Speech"; ;;
102) GENRE="Chanson"; ;;
103) GENRE="Opera"; ;;
104) GENRE="Chamber_Music"; ;;
105) GENRE="Sonata"; ;;
106) GENRE="Symphony"; ;;
107) GENRE="Booty_Bass"; ;;
108) GENRE="Primus"; ;;
109) GENRE="Porn_Groove"; ;;
110) GENRE="Satire"; ;;
111) GENRE="Slow_Jam"; ;;
112) GENRE="Club"; ;;
113) GENRE="Tango"; ;;
114) GENRE="Samba"; ;;
115) GENRE="Folklore"; ;;
116) GENRE="Ballad"; ;;
117) GENRE="Power_Ballad"; ;;
118) GENRE="Rhytmic_Soul"; ;;
119) GENRE="Freestyle"; ;;
120) GENRE="Duet"; ;;
121) GENRE="Punk_Rock"; ;;
122) GENRE="Drum_Solo"; ;;
123) GENRE="Acapella"; ;;
124) GENRE="Euro-House"; ;;
125) GENRE="Dance_Hall"; ;;
126) GENRE="Goa"; ;;
127) GENRE="Drum_&_Bass"; ;;
128) GENRE="Club-House"; ;;
129) GENRE="Hardcore"; ;;
130) GENRE="Terror"; ;;
131) GENRE="Indie"; ;;
132) GENRE="BritPop"; ;;
133) GENRE="Negerpunk"; ;;
134) GENRE="Polsk_Punk"; ;;
135) GENRE="Beat"; ;;
136) GENRE="Christian_Gangsta"; ;;
137) GENRE="Heavy_Metal"; ;;
138) GENRE="Black_Metal"; ;;
139) GENRE="Crossover"; ;;
140) GENRE="Contemporary_C"; ;;
141) GENRE="Christian_Rock"; ;;
142) GENRE="Merengue"; ;;
143) GENRE="Salsa"; ;;
144) GENRE="Thrash_Metal"; ;;
145) GENRE="Anime"; ;;
146) GENRE="JPop"; ;;
147) GENRE="SynthPop"; ;;
esac
echo "entspricht Genre = $GENRE"

[ $year ] || echo -en "Jahr: "
[ $year ] && echo "Jahr: $year"
[ $year ] || read "year"

# Ah, mein Name ist also track2mp3:
if [ $SKRIPT = track2mp3 ] ; then
echo -en "\nReady to convert? [ Y / n ] "
 read "yesno"
if ! [ -z "$yesno" -o _"$yesno" = _Y -o _"$yesno"_ = _y_ ] ; then
exit
fi
mkdir -p $MP3DIR/$GENRE/$artist
time $CDDA2WAV $CDDA2WAV_OPTS -t$tracknumber - |\
 $MP_CODER $MP_OPTIONS\
 --tt "$title"\
 --ta "$artist"\
 --tl "$album"\
 --tn "$tracknumber"\
 --tg "$genre"\
 --tc "LAME-Encoded by Uli's cd2mp3"\
 --ty "$year"\
 - $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')/$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3
if [ $? != 0 ] ; then
exit 1
fi

echo -e "File \033[33;1;40m$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3\033[m successfully created.\n"
# M3U-File erstellen:
echo "./$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3" >>\
 $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')/$(echo $album | sed -e 's/\ /_/g')-00.m3u
fi

if [ $SKRIPT = mp3tager ] ; then
echo -en "\nReady to Tag? [ Y / n ] "
 read "yesno"
if ! [ -z "$yesno" -o _"$yesno" = _Y -o _"$yesno"_ = _y_ ] ; then
exit
fi
mkdir -p $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')
 cp $file $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')/$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3
id3tag \
 -s"$title"\
 -a"$artist"\
 -A"$album"\
 -t"$tracknumber"\
 -g"$genre"\
 -c"LAME-Encoded by Uli's cd2mp3"\
 -y"$year"\
 $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')/$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3
if [ $? != 0 ] ; then
exit 1
fi

echo -e "File \033[33;1;40m$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3\033[m successfully taged.\n"
# M3U-File erstellen:
echo "./$(echo $album | sed -e 's/\ /_/g')-$tracknumber-$(echo $title | sed -e 's/\ /_/g').mp3" >>\
 $MP3DIR/$GENRE/$(echo $artist | sed -e 's/\ /_/g')/$(echo $album | sed -e 's/\ /_/g')-00.m3u
fi

CD-Infos auslesen

Wen die Neugierde treibt, kann sich mal die nichtausgelesenen Informationen einer CD ansehen:

Änderungen in den Skripten bitte Kommentieren!

CD-info.sh:

if [ -z $1 ] ; then
echo -n "Bitte Device eingeben (cdrom|cdrw): "
read CD
RD=$CD
else
RD=$1
fi
if [ -z $RD ] ; then
RD=0
fi
if [ cdrom = $RD ] ; then
RD=/dev/cdrom
elif [ cdrw = $RD ] ; then
RD=/dev/cdrw
else
RD=/dev/cdrom
fi
#RD=/dev/cdrw
for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
         33342,128 33470,32 33581,16 33598,16  33615,16  33632,16 \
         33647,128 40861,128
do
    old_IFS="$IFS"
    IFS=","
    set -- $i
    IFS="$old_IFS"
    OFFSET=$1
    LENGTH=$2
    echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
done

LinuxMultimedia/cd2mp3.sh (zuletzt geändert am 2008-02-11 21:00:14 durch cable-134-171)