如何调试AWK脚本

时间:2010-01-22 10:31:11

标签: scripting awk

调试任何AWK脚本有哪些提示?

3 个答案:

答案 0 :(得分:10)

在代码中使用print语句打印出变量/返回值的值等。如果您使用的是gawk,则可以使用-W dump-variables[=file]选项将变量转储到文件中进行调试。

此外,选项-W lint[=value]可能会引起关注。有关更多信息,请参阅文档其他版本的AWK,例如pgawk,提供了分析。

A page of关于调试的sed / awk书供您参考。

答案 1 :(得分:5)

现在有这个页面:Debugger Invocation - The GNU Awk User's Guide;提到像:

这样的调用
 $ gawk -D -f getopt.awk -f join.awk -f uniq.awk inputfile

...否则应该产生一个shell接口;但不幸的是,我的GNU Awk 3.1.7上没有--debug / -D开关。

编辑:发现了更多关于此的信息:

awk.info » New AWK debugger

  

Arnold Robbins在2010年2月写道。
  分发在http://www.skeeve.com/gawk/gawk-3.1.7-bc-d.tar.gz ...发送   这个版本与3.1.7相同,但是有一个新的执行引擎和一个名为gawk的调试版本,相当富有想象力,“dgawk”......

然后:

GNU Awk: This is Not Your Father's Awk | Dr Dobb's

  

使用与GDB(GNU调试器)类似的调试器进行awk级调试。第一次使用gawk 4.0(2011年发布)作为单独的可执行文件,但它现在内置于常规gawk可执行文件。

这就解释了为什么我没有它......从源头构建的时间,我猜:)

答案 2 :(得分:3)

你可能想尝试这个旧的宝石(最后更新2000/01/16,没有提供许可证):

awkdb - an AWK debugger

  
      
  • 让您逐步完成代码
  •   
  • 允许您设置(条件)断点
  •   
  • 让您检查变量
  •   
  • 允许您修改变量
  •   
  • 是用AWK编写的,因此它是可移植的
  •