Как ограничить вывод математических вычислений awk двумя десятичными знаками

Вы можете использовать xdotool , который может имитировать ввод с клавиатуры / мыши, управление окнами и многое другое.

См. Сценарий example.sh для xcalc "4 * 9 =" , чтобы просмотреть изображение результата захвата:

#!/usr/bin/env bash

save="$DISPLAY"                          # save original X display number
export DISPLAY=:44                       # set random choosen display for xvfb
case "$1" in                             #         and x-programs called below
  start) Xvfb $DISPLAY &   ;;            # starting xvfb server on :44
   calc) xcalc &           ;;            # run x-calculator
    xdo) xdotool mousemove 1 1 click 1   # focus with click on x:y=1:1
         xdotool key 4 asterisk 9        # calc 4*9
         xdotool key equal ;;            #         =
   show) #capture root window ('36' result image) and display it to saved Xno
         xwd -root | xwud -display $save &                                   ;;
   stop) ps auxww | grep "Xvfb $DISPLAY" | awk '{print $2}' | xargs kill     ;;
    all) DISPLAY=$save; $0 start; $0 calc; sleep 1; $0 xdo; $0 show; $0 stop ;;
esac

Примечание: отдельные параметры могут использоваться для тестирования или запустить все с помощью ./ example.sh all .

0
27.01.2019, 07:27
2 ответа

Альтернативным способом является определение выходного формата OFMT="%5.2f%%"для форматирования всего числового вывода:

$ awk -v OFMT="%5.2f%%" '
         $1 == "cpu" {
                       print( "Used Cpu: ", 100*($2+$4)/($2+$4+$5) )
                       print( "Free Cpu: ", 100*$5/($2+$3+$4+$5) )
                     }
         ' /proc/stat


Used Cpu:   9.52%
Free Cpu:  90.48%
1
20.08.2021, 11:05

Обзор кода:

  • awk может делать то же, что и grep, поэтому вам не нужен конвейер
  • добавить новые строки в код awk для надежности

Например:

awk '$1 == "cpu" {
  printf "Used Cpu: %5.2f%%\n", 100*($2+$4)/($2+$4+$5)
  printf "Free Cpu: %5.2f%%\n", 100*$5/($2+$3+$4+$5)
}' /proc/stat

, который выводит красиво выровненный

Used Cpu:  5.34%
Free Cpu: 94.63%
3
20.08.2021, 11:05

Теги

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