Forum Programmation.shell AWK fusionner 2 script

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
8
avr.
2013

bonjour

j'utilise 2 script pour synchroniser des logs avec une video, ca fonctionne pas mal du tout. pour simplifier l'usage je souhaite en faire qu'un. Mes essais ne donne pas le resultat attendu, soit j'ai une partie qui fonctionne soit rien du tout.

les logs sont sous la forme :

13
15
16

que je transforme en srt :

1
00:00:00,000 --> 00:00:00,000
13

2
00:00:00,000 --> 00:00:00,000
15

puis mon second script s'occupe de l'horodatage

1
00:00:00,004 --> 00:00:00,008
13

2
00:00:00,008 --> 00:00:00,012
15

mes scripts awk :
#/usr/bin/awk -f

{print FNR "\n"  "00:00:00,000 --> 00:00:00,000 \n" $0 "\n"  }

le deuxieme :

#!/usr/bin/awk -f


BEGIN  {  FS = "[ :,]"; decalage1=4 } 
{if ($0 !~ "-->") {print}
else
{ 
start_time_ms  = ($1*3600000 + $2*60000 + $3*1000 + $4) + (decalage1+=4)  ;
if (start_time_ms > 0) {
$1=int(start_time_ms/3600000); start_time_ms %= 3600000; 
$2=int(start_time_ms/60000);   start_time_ms %= 60000; 
$3=int(start_time_ms/1000);    start_time_ms %= 1000; 
$4 = int(start_time_ms);
} 
# $6 $7 $8 $9 
finish_time_ms = ($6*3600000 + $7*60000 + $8*1000 + $9) + (decalage1+4) ;
if (finish_time_ms > 0) {
$6=int(finish_time_ms/3600000); finish_time_ms %= 3600000; 
$7=int(finish_time_ms/60000);   finish_time_ms %= 60000; 
$8=int(finish_time_ms/1000);    finish_time_ms %= 1000; 
$9=int(finish_time_ms); 
}
{printf "%2.2d" "%s" "%2.2d" "%s" "%2.2d" "%s" "%3.3d" "%s",$1,":",$2,":",$3,",",$4," --> "}
{printf "%2.2d" "%s" "%2.2d" "%s" "%2.2d" "%s" "%3.3d\n"   ,$6,":",$7,":",$8,",",$9}
}}

une idée ? a par les mettres a la suite dans un script bash.

  • # copier/coller

    Posté par  . Évalué à 2.

    le premier est simple, doit alors suffire de le copier dans le deuxieme
    faut juste le mettre au bon endroit

    ou simplement recuperer la ligne sur laquelle tu es dans le fichier qui contient 13/15/16 et faire le print juste apres les timecodes que tu calcules avec le deuxieme fichier awk.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.