[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: