Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- if [ $# -ne 2 ]; then
- echo "Usage: `basename $0` SRTFILE DELAY"
- echo "Parameters (required):"
- echo -e "\tSTRFILE\t .srt file to read"
- echo -e "\tDELAY\t delay to add/subtract, in whole miliseconds"
- echo "The new file is sent to stdout."
- exit
- fi
- if [ ! -r $1 ]; then
- echo "No file given."
- exit
- fi
- FILE=$1
- ADD=$2
- PART='([0-9][0-9]):([0-9][0-9]):([0-9][0-9]),([0-9][0-9][0-9])'
- RE="^$PART --> $PART$"
- add() {
- XADDED=$(( $4+$ADD ))
- XNEW=`printf "%.3d" $(( $XADDED%1000 ))`
- SADDED=$(( $3+($XADDED/1000) ))
- SNEW=`printf "%.2d" $(( $SADDED%60 ))`
- MADDED=$(( $2+($SADDED/60) ))
- MNEW=`printf "%.2d" $(( $MADDED%60 ))`
- HNEW=`printf "%.2d" $(( $1+($MADDED/60) ))`
- NEW="$HNEW:$MNEW:$SNEW,$XNEW"
- echo $NEW
- }
- while read LINE
- do
- TEST=`egrep -ro "$RE" <<< "$LINE"`
- if [ -n "$TEST" ]; then
- H=`echo $LINE | sed -re "s/$RE/\1/"`
- M=`echo $LINE | sed -re "s/$RE/\2/"`
- S=`echo $LINE | sed -re "s/$RE/\3/"`
- X=`echo $LINE | sed -re "s/$RE/\4/"`
- START=`add $H $M $S $X`
- H=`echo $LINE | sed -re "s/$RE/\5/"`
- M=`echo $LINE | sed -re "s/$RE/\6/"`
- S=`echo $LINE | sed -re "s/$RE/\7/"`
- X=`echo $LINE | sed -re "s/$RE/\8/"`
- END=`add $H $M $S $X`
- echo "$START --> $END"
- else
- echo "$LINE"
- fi
- done < $FILE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement