Я думаю, что место для взгляда является src пакетом в спецификации, файл должен быть разделом, где команда настройки указана. Но я не знаю, могли ли Вы сделать это, не устанавливая его.
Просто удалите запятые из поля, которое Вы анализируете:
awk '{sub(",", "", $2); X+=$2} END {print X}' file
Это запустилось как быстрое-и-грязное решение, но оно походит там, на самом деле не другой путь. Из Руководства AWK:
Строка преобразовывается в число путем интерпретации числового префикса строки как цифры: "2.5" преобразовывает в 2,5, "1e3" преобразовывает в 1 000, и "25fix" имеет числовое значение 25. Строки, которые не могут быть интерпретированы как верные номера, преобразовываются в нуль.
И в то время как формат для числа к преобразованию строк может быть установлен через CONVFMT
переменная, нет такой опции для строки к преобразованиям чисел. [1]
Даже gawk
strtonum (), при удостаивании десятичного разделителя, определенного локалью системы, игнорирует (т.е. убегает в), тысяча разделителей.
Мне нравится использовать bc
для вещей как это. Предоставленный Вы только добавляете, но этот шаблон полезен, если необходимо сделать более сложные вещи, которые требуют bc
для того, чтобы сделать вычисления.
$ paste -s -d+ <(awk '{gsub(/,/,"",$2); print $2}' sample.txt) | bc
16852.70
awk
для удаления запятой и не имеют его, делают математику? Какая сложная математика может bc
сделайте это awk
(или гну awk), не может?
– Ricky Beam
19.02.2014, 03:05
awk
так как неаккуратный язык - другой, и я ежедневно использую Perl. При разработке моего кода в bc
намного легче отладить его по сравнению с отладкой awk
сценарий. Это - очевидно, мое мнение, но вышеупомянутый шаблон легче использовать для решения множества проблем по сравнению с необходимостью к пользовательскому ремеслу awk
решения, которые чувствуют больше один прочь мне. Этого достаточно для выравнивания по ширине DV?
– slm♦
19.02.2014, 03:16
@Martin Vegter это должно быть mawk, поэтому вы получаете ошибку, смотрите, я могу произвести ту же ошибку
[1] Установите gawk и попробуйте
.