[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[BASH] Estrarre valore dall'output di un'applicazione



salve a tutti,
ho un problema nel cercare di estrarre un valore da una riga di un file
in cui salvo l'output di mencoder;
vorrei cercare di estrarre via via che mencoder esegue una codifica il
valore del numero di frame codificati; il problema è che l'output che
ottengo cambia il suo valore per le prime volte, poi non più e non lo
cambia coerentemente con il valore effettivo; per spiegarmi meglio vi
posto un esemplificazione del codice che uso a mo di prova: 

while ps -p "$ENC_PID" | grep "$ENC_PID" > /dev/null; do
	LINE=$(tail -n 1 "$FILE" | grep "Pos: ") 
	if [ -n "$LINE" ]; then
        	echo "$LINE" | awk '{print $0}'
        	echo "$LINE" | awk '{print $3}'
 	fi
done	

il valore che voglio ottenere è quel $3 nella seconda riga dopo l'if;
un esempio di output che ottengo dal codice sopra è il seguente:

Pos:   0.0s      2f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
1f
Pos:   0.0s      3f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
3f
Pos:   0.0s      3f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
3f
Pos:   0.1s      5f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
4f
Pos:   0.1s      5f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
4f
Pos:   0.1s      6f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.1s      6f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.1s      6f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      7f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      7f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      7f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      7f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      8f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      8f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f
Pos:   0.2s      8f (30%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
6f

come vedete il secondo echo non tira fuori il valore che mi
aspetterei, per esempio nell'ultima riga vorrei veder scritto 8f e non
6f, come mai? stessa cosa avviene se al posto di awk uso cut. dove
sbaglio?

due info:
ENC_PID è il pid di mencoder
FILE è il file dove salvo l'output di mencoder mentre codifica

grazie in anticipo a tutti.

-- 
Luigi Curzi

~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
Io sono 
lo sbaglio, il momento di confusione, l'inopportuno

		Non sono niente.
	      Non sarò mai niente.
	Non posso volere d'essere niente.
A parte questo, ho in me tutti i sogni del mondo.
					(F. Pessoa)


Reply to: