gpt4 book ai didi

awk - 在 awk 中包含函数库

转载 作者:行者123 更新时间:2023-12-04 13:22:51 24 4
gpt4 key购买 nike

awk 中没有内置许多常用函数(尤其是算术/数学)我需要一直写自己。

例如:

  • 没有c=min(a,b) ,所以在 awk我经常写c=a<b?a:b
  • 最大值相同,即 c=max(a,b)
  • 绝对值相同,即 c=abs(a)所以我必须不断地写c=a>0?a:-a
  • 等等....

  • 理想情况下,我可以将这些函数写入 awk源文件,并将其“包含”到我的所有 awk 实例中,这样我就可以随意调用它们。

    我查看了 GNU 的“@include”功能 gawk ,但它只执行包含脚本中的任何内容 - 即我无法调用函数。

    我希望在例如编写一些函数 mylib.awk ,然后每当我调用 awk 时“包括”它.

    我试过 -f mylib.awk选项 awk ,但脚本已执行 - 其中的函数不可调用。

    最佳答案

    使用 GNU awk:

    $ ls lib
    prims.awk

    $ cat lib/prims.awk
    function abs(num) { return (num > 0 ? num : -num) }
    function max(a,b) { return (a > b ? a : b) }
    function min(a,b) { return (a < b ? a : b) }

    $ export AWKPATH="$PWD/lib"

    $ awk -i prims.awk 'BEGIN{print min(4,7), abs(-3)}'
    4 3

    $ cat tst.awk
    @include "prims.awk"
    BEGIN { print min(4,7), abs(-3) }

    $ awk -f tst.awk
    4 3

    关于awk - 在 awk 中包含函数库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462821/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com