Необходимо удалить десятичную точку из вывода команды

Чтобы заменить символы новой строки на "," , вы можете запустить

awk '{ printf "%s,", $0 }'

GNU awk ( gawk ) и Solaris nawk будут работать с буферизацией строки на стандартном вводе и без буферизации стандартного вывода при выводе на терминал. Если ваш awk - mawk , что происходит в Ubuntu, вы можете указать ему опцию -W interactive , чтобы получить такое же поведение буферизации.

0
24.05.2018, 13:44
2 ответа

В awkнет функции ceil, но вы можете определить одну:

... | awk -F"#" 'function ceil(x){return (x == int(x)) ? x : int(x)+1} { sum += $NF; n++ } END { if (n > 0) print ceil(sum / n); }'

Заметьте, что int()раундов похоже на floorв других языках.

Кредиты:здесь

0
28.01.2020, 02:43

Вы можете заменить printна printf "%.0f\n". Также обратите внимание, что awkможет выполнять работу grep:

.
awk -F"#" '
  /#COMPLETE#/ && /#O#/ {sum += $NF; n++}
  END {if (n > 0) printf "%.0f\n", sum / n}'

Округление до ближайшего целого числа (x,3 до x, x,7 до x+1 (x -1 для отрицательных чисел ), x,5 до x или x+1 (x -1 для отрицательных чисел )в зависимости от того, является ли x четным или нечетным)

1
28.01.2020, 02:43

Теги

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