frawk是一种小型编程语言,用于编写处理文本数据的短程序。首先,它是AWK语言的一个实现;许多常见的Awk程序在传递给frawk时会产生等效的输出。如果希望脚本处理转义的CSV/TSV格式的标准Awk字段,或者希望脚本执行得更快,那么您可能会对Frawk感兴趣。
基准:在处理大型CSV或TSV文件时,frawk和其他工具的相对性能。
内置函数参考:frawk实现的内置函数列表,包括一些与Awk相比新的函数。
你需要安装防锈漆。如果要使用LLVM后端,需要在计算机上安装LLVM 12:
有关一些基于debian的Linux发行版的安装说明,请参阅本网站。另请参阅关于这个问题的评论,了解可用于在Ubuntu上构建二进制文件的docker文件。
在Arch pacman上,Sy llvm llvm LIB和一个C编译器(例如clang)到2020年9月就足够了。
根据软件包管理器放置这些库的位置,您可能需要在LLVM库安装时指向LLVM_SYS_120_前缀(例如,Linux上的/usr/lib/LLVM-12或/usr/local/opt)/llvm@12在Mac OS上安装时llvm@12通过自制)。
虽然建议使用LLVM后端,但只有在支持基于Cranelift的JIT及其字节码解释器的情况下才能构建frawk。要做到这一点,请在不使用llvm_后端功能的情况下进行构建。Cranelift后端为较小脚本的LLVM提供可比较的性能,但LLVM';s的优化有时会比Cranelift带来显著的性能提升(有关这方面的一些示例,请参阅Benchmarks文档)。
默认情况下,frawk目前需要夜间编译器。要使用stable编译frawk,请在不使用不稳定功能的情况下编译。构建frawk需要使用Rustop default nightly或其他方法来运行夜间编译器版本。
有了这些先决条件,克隆这个存储库和一个cargo构建——release或cargo[+nightly]install——path<;frawk回购路径>;将生成一个二进制文件,如果您选择,可以将其添加到路径中:
$cd<;frawk回购路径>;#使用LLVM$cargo+夜间安装--path.#没有LLVM,但有其他推荐的默认值$cargo+nightly install--path--没有默认功能——功能使用_jemalloc,允许_avx2,不稳定
弗劳克现在在板条箱上。io,所以运行cargo install frawk和所需的功能也应该可以工作。
虽然frawk中没有经过深思熟虑的unix ISM,但我还没有在Windows上测试过它。
弗劳克有虫子,还有许多粗糙的边缘。如果你注意到frawk中有一个bug,提交一个问题并解释如何重现错误将非常有帮助。无法保证修复的响应时间或延迟。没有人全职在frawk上工作。同样的策略适用于功能请求。