Я знаю, что обычно вы не хотите, чтобы однострочные / однорядные команды становились слишком длинными, но иногда кажется, что длинная однострочная команда выиграла бы от замены повторяющихся элементов функцией.
Можно ли использовать короткую функцию для сокращения длины вашей команды?
Например, насколько мне известно, в awk нет функции потолка или округления, поэтому вы можете написать функции
'function round(a){a=(a < int(a)+0.5) ? int(a) : int(a+1)}'
и
'function ceil(a){a=(a == int(a)) ? a : int(a)+1}'
Не могли бы вы включить эти функции?в один лайнер?
например
Не могли бы вы использовать его в скрипте, чтобы получить верхний предел файла
$ cat money.data
121.52 133.45 136.77 155.22
132.11 141.30 12.78 78.98
31.21 149.03 33.50 84.67
... который для функции потолка будет:
$ tail money.data
122 134 137 156
133 142 13 79
32 150 34 85
... и для функции округления было бы
$ tail money.data
122 133 137 155
132 141 13 79
31 149 34 85
Я играл со случайными операторами awk, но не мог понять, как объединить функции в однулайнеры ...