在gawk手册中,我介绍了一个@include运算符.这使您可以制作.awk模块和共享脚本等.包含文件.
到目前为止,最新的cgywin,mingw和gnu awk-s(awk,gawk,mawk,nawk,...)我发现Windows第一个失败:@include语句.
有人能指出我实现Windows的整个nawk或awk实现的版本吗?我很确定在当天至少有一次nawk,我们已经下载了运行Windows NT.
或者,在此期间解决问题会有所帮助.(说一个预先测试过的awk includer程序??)
蒂尔,威尔
据我所知,@includegawk本身不支持文件,直到4.x. 但是,至少在Linux上,它附带了一个igawk可以使用的shell脚本; 它预处理awk脚本并用@include包含文件的内容替换s(通过via找到$AWKPATH).也许Cygwin也有这个剧本?
$ cat foo.awk
@include bar.awk
$ cat bar.awk
BEGIN {print "Hello, world!" }
$ awk -f foo.awk
awk: foo.awk:1: @include bar.awk
awk: foo.awk:1: ^ invalid char '@' in expression
$ gawk -f foo.awk
gawk: foo.awk:1: @include bar.awk
gawk: foo.awk:1: ^ invalid char '@' in expression
$ igawk -f foo.awk
Hello, world!
Run Code Online (Sandbox Code Playgroud)
但请注意,igawkgawk 4的@include语法不兼容.@includegawk 4中的native 需要包含文件名的带引号的字符串; igawk如果你引用它,它将使用一个简单的字,并试图在其名称中找到带引号的文件.