sed - Using grep to adjust timecode -
i'm trying change timecode found 1 format another, remove milliseconds off end of file , update it. remove milliseconds transcription timecode software , make pretty file client.
input looks this:
00:50:34.00>interviewer why ............... script? 00:50:35.13>john doe because of quality.
so i'm trying use grep match timecode , got working following expression.
grep [0-9][0-9][:][0-9][0-9][:][0-9][0-9]\.[0-9][0-9] -p -o transcriptionfile.txt
output looks this:
00:50:34.00 00:50:35.13
so i'm trying take timecode , update file updated values like:
00:50:34 00:50:35
how do that? should use pipe push on sed can update values in file?
i've tried use sed following command:
sed 's/[0-9][0-9][:][0-9][0-9][:][0-9][0-9]\.[0-9][0-9]/[0-9][0-9][:][0-9][0-9][:][0-9][0-9]/g' transcriptionfile.txt > outtranscriptionfile.txt
i output puts in regexp in place timecode supposed be. ideas? how can trim last 3 digits off far right side of timecode before update file?
any tips or suggestions appreciated.
thanks :-)
with gnu sed:
$ sed -r 's/^([0-9]{2}:[0-9]{2}:[0-9]{2})\>\.[0-9]{2}/\1/' transcriptionfile.txt 00:50:34>interviewer why ............... script? 00:50:35>john doe because of quality.
to edit file in place, add -i
option:
sed -r -i 's/^([0-9]{2}:[0-9]{2}:[0-9]{2})\>\.[0-9]{2}/\1/' transcriptionfile.txt
explanation:
[0-9]{2}:
matches every 2 digits followed:
. 3 occurences captured using brackets.\>\.[0-9]{2}
matches>
followed dot , 2 digits.- using backreference
\1
, strings matching previous pattern replaced captured characters (timecode without milliseconds).
Comments
Post a Comment