Shellcommandos die ich immer wieder mal brauche

Musiksammlung

Um die Oggsammlung in mp3 zu konvertieren, z.B. für einen USB Stick in einem Audioplayer. Die Dateien sollen nachher in der Albumreihenfolge abgespielt werden, der Player ist aber saudoof und kann nur in FAT Verzeichnisreihenfolge abspielen.

Ein anderer Player (Onkyo CR-N765) ist deutlich schlauer und kann insbesondere .ogg Dateien abspielen. Wenn die Dateien vom Stick und nicht über DLNA kommen sollen, müssen Sie aber im Verzeichnis umbenannt werden, da die Dateien vom Player vor dem Abspielen alphabetisch sortiert werden.

Player mit mp3 only

Neues Verzeichnis anlegen und die ogg-Dateien des Albums hineinkopieren. Für jedes Album ein eigenes Verzeichnis. Dann in jedem Verzeichnis wie folgt vorgehen.

for i in *.ogg ; do echo $i; oggdec $i ; lame $(basename $i .ogg).wav ; done
for i in *.ogg ; do L=`vorbiscomment -l "${i}" |grep tracknumber |cut -f2 -d'=' ` ; Z=`basename ${i} .ogg`; mv $Z.mp3 $L.mp3 ; done
rm *.ogg 
Anzeigen in realer Verzeichnisreihenfolge (unsortiert)
ls -lU
Falls die Dateien nicht in der gewünschten Abspielreihenfolge (1,2,3,4 usw.) angeordnet sind (sehr wahrscheinlich) die Dateien nochmals kopieren. Oder, besser das Programm "fatsort" benutzen. "-n" sortiert in natural order (1,2,3 ... 10,11) und nicht in ASCII order (1,10,11,12... 2,20,21,22..). "-d" gibt ein Verzeichnis an, dann wird nur das sortiert.
fatsort -n -d  /dev/sd
danach dann die alten Dateien löschen. Die Shellexpansionen "*" und "?" expandieren automagisch alphabetisch.

Onkyo CR-N765, kann ogg Dateien abspielen

Die Dateien kann man in der Verzeichnisstruktur direkt auf den Stick kopieren. Leider werden vom Gerät inital nur die Dateinamen angezeigt und die Dateien werden vor dem Abspielen alphabetisch sortiert, d.h. man muß Sie "1_...", "2_..." benennen, wenn man Sie in Albumreihenfolge abspielen will.

Der folgende Trick fügt die Tracknumber aus den vorbiscomments vorne an den Dateinamen mit Underscore an. Direkt in jedem Verzeichnis ausführen.

for i in *.ogg; do L=`vorbiscomment -l "${i}" |grep tracknumber |cut -f2 -d'=' ` ; Z=`basename ${i} .ogg`; mv "${i}" "${L}_${i}" ; done 

Bilder von der Kamera

Hässlich großgeschriebene Bilddateinamen in Kleinschreibung konvertieren.

for i in *.JPG; do mv $i ${i,,}; done

MPEG2-Transportströme analyisieren

Habe ich nicht auf Anhieb gefunden: Ein Tool um MPEG2-Transportströme zu untersuchen (".ts"-Dateien). Dazu muß man das Paket mediainfo installieren.

wget -S "http://172.16.0.4:9981/stream/channelnumber/966" -O test.ts
mediainfo test.ts
General
ID                                       : 501 (0x1F5)
Complete name                            : test.ts
Format                                   : MPEG-TS
File size                                : 136 KiB
Duration                                 : 3s 361ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 281 Kbps
[...]

Zeilen aus einer Datei mittendrin herausschneiden

head und tail kann Anfang oder Ende einer Datei herausschneiden. Will man ein "slice" herausschneiden so nimmt man am besten sed.

sed -n 101,200p Datei.csv

Schneidet die Zeilen 101 bis 200 aus einer Datei aus.

© Carsten Groß - Letzte Änderung 22.05.2017 21:14 - Impressum