( apostroph3 | 2017. 02. 07., k – 18:09 )

mondjuk így is működik, és jól, valamint sem jobb, sem gyorsabb nem lenne a változtatással.

ha változtatnék, és miért ne? akkor valami ilyesmit csinálnék:


if [ "$1" = "-h" ]; then
  usage
  exit 0
elif [ "$2" ]; then
  usage
  exit 1
# If no directory is given, work in local dir
elif [ ! "$1" ]; then
  DIR="."
elif [ -e "$1" ]; then
  DIR="$1"
else
  usage
  echo
  echo "  ERROR: $1 ..."
  exit 1
fi

valamint:


  mkvmerge -i "$filename" | sed -n -e 's/^Track ID \([0-9]\+\): subtitles .*$/\1/p' | while read tracknumber
  do

    tracklanguage=`mkvmerge -F verbose-text -i "$filename" | sed -n -e '/^Track ID '"$tracknumber"':/s/.* language:\([a-z]\{3\}\) .*/\1/p'`
    [ "$tracklanguage" ] || tracklanguage="unknown"

    subtitlename=${filename%.*}

    mkvextract tracks "$filename" $tracknumber:"$subtitlename.srt.tmp" > /dev/null 2>&1
    chmod g+rw "$subtitlename.srt.tmp"

    mv "$subtitlename.srt.tmp" "$subtitlename-t$tracknumber-$tracklanguage.srt" > /dev/null 2>&1

  done

ezzel viszont gyorsabb lenne..
nem mintha ez számítana:)

a végén a .tmp fájlba mentést, meg az átnevezését azt meghagynám, csak kilépnék ha sikertelen az átnevezés.

de gyorsan kellett és jól műkodik :))