Превращение процентов в десятичные числа?

Xfce позволяет использовать пользовательский wm. LXDE является набором Openbox (wm) и панели, меню, и т.д., таким образом, это, очевидно, позволяет. Если Вам нравится Gnome2, вероятно, необходимо судить Помощника, хотя я не могу рекомендовать это, потому что я слышал, что это - багги. Почему использование не чистит wm? Просто установите приложения, в которых Вы нуждаетесь от gnome2 и используете их. При необходимости в панели существует много альтернатив как tint2.

0
20.01.2014, 02:51
2 ответа
$ echo '173.91,0.00%,36.10%,1.71'|perl -pe 's{\d+\.\d+%}{$&/100}eg'
173.91,0,0.361,1.71

regex ищет плавание с %, и в последних фигурных скобках оценивает выражение: соответствующая строка $& разделенный на 100.

1
28.01.2020, 02:37

Вот awk пример:

$ awk -F, '{sub(/%/,"",$2); sub(/%/,"",$3); \
      printf("%.2f,%.0f,%.4f,%.2f\n"), $1, $2, $3/100, $4}' ex.txt 
173.91,0,0.3610,1.71

Подробнее

  1. Мы говорим awk разделять содержание файла ex.txt использование запятых, -F,.
  2. sub(/%/,"",$2) & sub(/%/,"",$3) снимите изоляцию со знаков процента.
  3. printf("%.2f,%.0f,%.4f,%.2f\n") заботится для форматирования всего.
  4. Параметры к printf, $1, $2, $4 просто содержание файла, 3-го, $3/100 мы делимся на 100 для получения его в десятичной форме.

Улучшение дизайна

Одна вещь, которую мы можем сразу улучшить, предположив, что мы не заботимся о знаках процента, состоит в том, чтобы полностью удалить их использование gsub глобально заменять ими.

$ awk -F, '{sub(/%/,"",$0); \
      printf("%.2f,%.0f,%.4f,%.2f\n"), $1, $2, $3/100, $4}' ex.txt 
173.91,0,0.3610,1.71
1
28.01.2020, 02:37

Теги

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