![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Как читать колонки и распечатать ценностей в соответствии с этой колонке | gemini106 | Shell программирование и сценарии | 6 | 03-28-2008 07:05 AM |
| Как проверить Null значения в файле колонка колонки, если колонка не NULLs | Mandab | Shell программирование и сценарии | 7 | 03-15-2008 09:57 AM |
| Использование AWK расчета в среднем столбце 3 | grossgermany | UNIX для чайников Вопросы И Ответы | 6 | 07-27-2007 01:29 PM |
| расчета в среднем столбце 2 | onthetopo | UNIX для чайников Вопросы И Ответы | 0 | 07-06-2007 08:16 PM |
| Как мне рассчитать долю? | the_learner | Программирования высокого уровня | 6 | 04-18-2007 04:40 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Как рассчитать процент значения в столбце
Привет, я с файла, который содержит следующие две колонки.
518 _factorial 256 _Главная 73 _atol 52 ___do_global_ctors 170 ___main 52 ___do_g Как можно рассчитать долю каждого значения в первом столбце? в первую очередь необходимо, чтобы сумма в первой колонке, а затем каждое значение разделите на сумму и умножить на 100, чтобы получить процент. Как мы можем написать сценарий для этого? Спасибо и наилучшими пожеланиями Раджа |
|
||||
|
Попробуйте это:
Код:
awk '
NR > max { max=NR }
{ tot+=$1; v[NR]=$1; d[NR]=$2 }
END { for (i=1; i<=max; i++) { print v[i]*100/tot,v[i],d[i] } }
' inputfile
|
|
||||
|
Другой подход:
Код:
awk 'NR==FNR{t+=$1;next}{printf("%.2f %s\n", $1/t*100, $2)}' file file
|
|
||||
|
Да, это намного аккуратнее.
|
![]() |
| Закладки |
| Теги |
| Доля Колонки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|