Недопустимый символ и ошибка разбора


top -n 2 -d 5 | grep процессор | awk 'NR == 2' | sed -e "s / \% // g" | sed -e "s / \ us, // g"> temp

cpu_value =awk '{print $2}' temp

cpu_calc =echo "scale=4; 100 - $cpu_value" | bc

Я получаю следующую ошибку:

(standard_in) 1: недопустимый символ: ^[ (standard_in) 1: ошибка разбора

1 ответ

Просто добавьте tr, чтобы заменить , с .

cpu_calc=`echo "scale=4; 100 - $cpu_value" | tr , . | bc`

Кажется, работает на моем ноутбуке.

Изменить: Как вы должны знать, десятичный разделитель и разделитель тысяч различаются в разных странах, и, следовательно, могут также отличаться, если некоторые команды имеют форматирование чисел, специфичное для страны / языка. В Испании мы пишем 42.571,93 в других странах вы можете увидеть 42,571.93 для компьютеров, однако правильная форма 42571.93 (этот номер только пример).

Другие вопросы по тегам