народ, помогите, туплю второй день.
дано - лог вида:
Код:
xxx.xxx.xxx.13: 12.2 M
xxx.xxx.xxx.34: 32975
xxx.xxx.xxx.16: 3825
xxx.xxx.xxx.118: 6511
xxx.xxx.xxx.16: 5753
xxx.xxx.xxx.16: 2552
xxx.xxx.xxx.13: 1788
xxx.xxx.xxx.55: 628
xxx.xxx.xxx.16: 1.1 M
xxx.xxx.xxx.10: 635
xxx.xxx.xxx.13: 1671
xxx.xxx.xxx.13: 1199
xxx.xxx.xxx.253: 12687
xxx.xxx.xxx.13: 967
xxx.xxx.xxx.253: 827
xxx.xxx.xxx.253: 71321
xxx.xxx.xxx.16: 3669
xxx.xxx.xxx.16: 31975
xxx.xxx.xxx.13: 958
xxx.xxx.xxx.13: 3.2 M
как видно, во второй колонке единицы измерения разные: байты - без буквенных обозначений, и мегабайты, обозначенные буквой "M" (теоретически могут быть и "Жо", тоесть "G", но если разберемся с М, значит и с Жо понятно будет)
задача: средствами sh привести вторую колонку к общему знаменателю, байтам. тоесть те значения, после которых стоит "M" заменить на
цифирное_значение*1048576
чтоб получилось так:
Код:
xxx.xxx.xxx.13: 12792627.2
xxx.xxx.xxx.34: 32975
xxx.xxx.xxx.16: 3825
xxx.xxx.xxx.118: 6511
xxx.xxx.xxx.16: 5753
xxx.xxx.xxx.16: 2552
xxx.xxx.xxx.13: 1788
xxx.xxx.xxx.55: 628
xxx.xxx.xxx.16: 1153433.6
xxx.xxx.xxx.10: 635
xxx.xxx.xxx.13: 1671
xxx.xxx.xxx.13: 1199
xxx.xxx.xxx.253: 12687
xxx.xxx.xxx.13: 967
xxx.xxx.xxx.253: 827
xxx.xxx.xxx.253: 71321
xxx.xxx.xxx.16: 3669
xxx.xxx.xxx.16: 31975
xxx.xxx.xxx.13: 958
xxx.xxx.xxx.13: 3355443.2