На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
bars
Сообщения: 846
ОС: BSD/LINUX
Сообщение
bars » 12.09.2023 16:04
Привет.
Есть переменная в байтах
OUT=`netstat -bn -I ix0 | awk '/ix0 1500 <Link#1>/ {print $11}'`
Получаем
netstat -bn -I ix0 | awk '/ix0 1500 <Link#1>/ {print $11}'
177575175731
Как мне одной командой сделать сразу с переводом в гигобайты?
Не хочется делать промежуточную переменную для отображения уже сконвертированого ГИГОБАЙТА
olecya
Сообщения: 892
ОС: debian, fedora (i3-wm)
Сообщение
olecya » 12.09.2023 17:48
bars писал: ↑ 12.09.2023 16:04
{print $11}
Раз уж вы используете awk, то можете форматировать вывод как вам угодно:
{printf("%.2f\n", $11 /1024/1024/1024)}
Или просто используйте опцию
-h (
human readable ) в самой утилите netstat. Будут выводиться значения с суффиксами.
bars
Сообщения: 846
ОС: BSD/LINUX
Сообщение
bars » 12.09.2023 18:35
olecya писала: ↑ 12.09.2023 17:48
Раз уж вы используете awk, то можете форматировать вывод как вам угодно:
{printf("%.2f\n", $11 /1024/1024/1024)}
Или просто используйте опцию -h (human readable) в самой утилите netstat. Будут выводиться значения с суффиксами.
Спасибо про ключ h я что то не подумал.
А что это означает?
Код: Выделить всё
netstat -bn -I ix0 | awk '/ix0 1500 <Link#1>/ {print ($11 /1024/1024/1024)}'
165.508
Можно деление сделать с округлением?
Добавлено (18:41):
Код: Выделить всё
netstat -bn -I ix0 | awk '/ix0 1500 <Link#1>/ {print("%.2f \n",$11 /1024/1024/1024)}'
%.2f
165.515
Добавлено (18:52):
Код: Выделить всё
echo 166.726 | awk '{printf "%.0f\n",$1}'
167
так округляется, виновата думаю круглая скобка.
Добавлено (18:55):
Код: Выделить всё
netstat -bn -I ix0 | awk '/ix0 1500 <Link#1>/ {print $11 /1024/1024/1024}' | awk '{printf "%.0f\n",$0}'
166
Работает.
olecya
Сообщения: 892
ОС: debian, fedora (i3-wm)
Сообщение
olecya » 12.09.2023 20:32
bars писал: ↑ 12.09.2023 18:35
так округляется, виновата думаю круглая скобка.
Нет. Вы в следующем варианте перепутали команды print c printf
bars писал: ↑ 12.09.2023 18:35
{print("%.2f \n",$11 /1024/1024/1024)}
или
Эти строки форматирования сокращают результат до двух знаков после запятой с округлением.
Добавлено (20:36):
Только целая часть, так же с округлением: