awk
ist für diese Art der Verarbeitung gut geeignet.
Um die Gleitkomma-Genauigkeit zu verarbeiten, können Sie printf
mit einer Format-Zeichenfolge für jede Variable verwenden.
Es gibt auch eine andere Art und Weise, die das Format-String für alleausgewertet Variablen setzt. Die Formatierung wird bei Auswertungen angewendet (die intern sprintf
verwenden. Die Steuerung integrierte Variable OFMT
ist. Built-in Variables That Control awk See.
#!/bin/bash
file="$1" # $1 is the 1st command line parameter
awk -vOFMT="%.6f" '/ took /{ secs+=$4 } END{ print secs }' "$file"
Mit sed
mehr beteiligt ist, weil es keine Berechnungen tun und sogar bash
selbst kann das nicht Gleitpunktarithmetik, so dass Sie so etwas wie awk
oder bc
in jedem Fall verwenden müssen
Wenn Sie wirklich sed verwenden möchten.
#!/bin/bash
file="$1" # $1 is the 1st command line parameter
{ sed -nr 's/.* took ([0-9.]+).*/\1+/p' "$file" |tr -d '\n'; echo 0; } |bc
Ich weiß nicht viel Bash ...! Alles, was ich weiß, ist, dass ich einige reguläre Ausdrücke mit sed verwenden muss. Aber ich habe keine Ahnung wie ... – kstratis