Преобразование строки в число

filename=domoticz.db
name="${filename%.*}"
extension="${filename##*.}"

timestamp=$(date "+%Y%m%d")

cp domoticz.db /the/folder/"${name}.${timestamp}.${extension}"

Выходной файл:

/the/folder/domoticz.20190930.db
0
01.02.2021, 09:34
1 ответ

Используйте одну awkкоманду, подобную этой:

# Use two sepatators, <space> and ", so you catch exactly the number.
# Multiply by 10
# `printf` allows you to format numbers in many ways, in this case, 1 decimal

str='iso.3.6.1.4.1.24681.1.2.1.0 = STRING: "9.10 %"'

$ echo "$str" | awk -F'[ "]' '{ printf "%.1f\n", $5*10 }'
91.0

Или, как указал @Stéphane Chazelas , это тоже работает:

echo "$str" | awk -F \" '{ printf "%.1f\n", $2*10 }'

Модификаторы для форматов printf

%e, %E, %f, %F
Number of digits to the right of the decimal point.`

1
18.03.2021, 22:33

Теги

Похожие вопросы