Bisher jeder Antwort hier ist mit externen Tools (sed
, awk
, grep
, tr
, usw.) anstatt sich an die native bash-Funktionalität zu halten. Da das Hochfahren externer Prozesse erhebliche Auswirkungen auf die Leistung bei konstanter Zeit hat, ist es im Allgemeinen unerwünscht, wenn nur eine einzige Zeile Inhalt verarbeitet wird (bei langen Inhaltsströmen ist ein externes Tool oft effizienter).
Dieses verwendet Einbauten nur:
# one-time setup: set the regex
re='[(]([0-9.]+) MB/sec[)]'
string='1024.00 MB transferred (912.48 MB/sec)'
if [[ $string =~ $re ]]; then # run enclosed code only if regex matches
val=${BASH_REMATCH[1]} # refer to first (and only) match group
val_with_comma=${val//./,} # replace "." with "," in that group
echo "${val_with_comma}" # ...and emit our output
fi
... wodurch man
912,48
Danke, es funktioniert perfekt :) – SegFault