Code: Alles auswählen
VideoInputFileTypes="mkv mp4 mpg mpeg avi flv mp3 mov m4a 3gp 3g2 mj2"
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $(ls | grep "$(echo $VideoInputFileTypes | sed 's/ /\$\\|/g')") ;do
AudioLaneType=$(ffprobe "$i" 2>&1 | grep "Audio: " | awk -F "Audio: " '{print $2}' | cut -d " " -f1 | head -n1)
mplayer -dumpaudio $i
mv stream.dump $(echo $i |sed 's/.\{3\}$/'$AudioLaneType'/')
#alternative but errors with spaces in filenames
#avconv -y -i "$i" -acodec copy "$i".$AudioLaneType || echo invalid file: $i
done
IFS=$SAVEIFS
Für das Umbenennen mit der entsprechen Audiospurendung nach dem codec der Audiospur der Video Datei ( aac Audiospur = acc Dateiendung , ac3 Audiospur = .ac3 Endung ) sollte alles nach dem letzten Punkt des Dateinamens gelöscht werden.
Code: Alles auswählen
sed 's/.\{3\}$/'$AudioLaneType'/'
Wie kann ich mit sed ALLES was nach dem letzten Punkt folgt löschen ?