Linux 如何在Awk一行程序/单个命令中包含短函数?
我知道,通常情况下,您不希望一行程序/单个命令变得太长,但似乎偶尔会有一个较长的一行程序,它将受益于用函数替换重复元素 是否可以使用短函数缩短命令的长度 例如,据我所知,awk中没有上限或圆形函数,所以您可以编写函数Linux 如何在Awk一行程序/单个命令中包含短函数?,linux,scripting,function,awk,Linux,Scripting,Function,Awk,我知道,通常情况下,您不希望一行程序/单个命令变得太长,但似乎偶尔会有一个较长的一行程序,它将受益于用函数替换重复元素 是否可以使用短函数缩短命令的长度 例如,据我所知,awk中没有上限或圆形函数,所以您可以编写函数 'function round(a){a=(a < int(a)+0.5) ? int(a) : int(a+1)}' 你能把这些函数合并成一行吗 e、 g 你能在脚本中使用它来获得文件的上限吗 $ cat money.data 121.52 133.45 136.77 1
'function round(a){a=(a < int(a)+0.5) ? int(a) : int(a+1)}'
你能把这些函数合并成一行吗
e、 g
你能在脚本中使用它来获得文件的上限吗
$ 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
…对于round函数来说
$ tail money.data
122 133 137 155
132 141 13 79
31 149 34 85
我使用了随机的awk语句,但不知道如何将函数合并到一行程序中…只需在函数中使用return语句:
function round(a){return (a < int(a)+0.5) ? int(a) : int(a+1)}
{for (f=1;f<=NF;f++) print round($f)}
函数取整(a){返回(afunction round(a){return (a < int(a)+0.5) ? int(a) : int(a+1)}
{for (f=1;f<=NF;f++) print round($f)}